Repository navigation
Fix credential disclosure and enforce filing request boundaries - #351
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The token API exposed the EFSP service key, browser login bypassed CSRF protection, and several proxy paths and document URLs trusted browser input. This change keeps the service key server-side and binds credentialed requests and document fetches to the signed-in account and its draft.
Validation: the broad offline application suite passed: 2,315 passed, 16 skipped, 2 deselected, including all 54 new confidentiality regressions. Focused security/service suites also passed (294 passed, 6 skipped), as did all 91 JavaScript tests, ESLint, Ruff lint/format, ty, Bandit, and the migration check. The two exclusions (
test_api_response_consistencyandtest_dev_settings_refuse_to_load_on_a_deployed_host) fail identically on unchanged main under isolated audit settings: they depend on the live EFSP or development-settings initialization. Live-account tests skip without credentials in the isolated run. The repository’s complete standard pre-push Python and JavaScript hooks also passed on this commit.Claude and Argon independently reviewed the findings and a credential-free source snapshot of the fixes. Their confirmed path-validation and jurisdiction-authentication concerns are addressed; speculative disclosure impacts were not treated as established exploits.
Deployment: patch every exposed environment, then rotate/revoke exposed EFSP service keys and review proxy access logs. This PR does not rotate credentials or verify deployed proxy/Gotenberg egress controls. No database migration is needed.
Related to #345. Continuous scan automation and deployment verification remain separate work.