Repository navigation
PermitProbe v0.3.2 release notes
PermitProbe v0.3.2 is a security hotfix for six parser, credential-boundary, and checked-bundle
findings reproduced during an independent Astra Max review of v0.3.1. It preserves the existing
GET-only execution model, policy format version 1, and report schema version 2.
Provider credential boundary
An exploration provider now receives the platform's fixed default PATH rather than inheriting
the caller's PATH. Variables named explicitly with --provider-env remain available unless the
same variable supplies a policy credential or request header, in which case the existing
fail-closed intersection check rejects the run.
Response parsing
Browser-security and cache contracts now validate response field values before normalization.
Only visible ASCII plus HTAB is accepted, and only SP and HTAB are treated as HTTP optional
whitespace. NBSP, NEL, and other Unicode whitespace can no longer turn a malformed HSTS, CSP,
COOP, COEP, CORP, Origin-Agent-Cluster, cookie, CORS, Vary, or cache value into a pass.
HSTS validates every directive as an HTTP token or quoted string. includeSubDomains and
preload must be valueless flags even when a contract does not require them. Cookie declarations
apply the __Host-, __Secure-, __Http-, and __Host-Http- acceptance invariants under ASCII
case-insensitive prefix matching while continuing to match the declared cookie name exactly at
runtime.
Offline inputs and checked bundles
OpenAPI API-key locations now require a string before allowed-value comparison. A list, object, or
other malformed value produces the documented invalid-document exit code 2 instead of an
uncaught exception.
Checked bundles reject a file whose normalized path is an ancestor of another member, in either
declaration order. The same check includes the embedded PERMITPROBE-MANIFEST.json receipt, so an
entry below that file path cannot produce an archive that passes inspection but fails portable
extraction.
Assurance
The release adds direct regressions for all six original reproducers and adjacent valid cases. The
complete suite passes on Python 3.11 and 3.14, with CodeQL, dependency review, source-secret
scanning, dependency auditing, workflow analysis, strict distribution metadata checks, and an
isolated installed-wheel smoke test retained in the release gates.