Repository navigation
fix(client): security hardening - #709
armando-rodriguez-cko wants to merge 1 commit into
Conversation
Follow-up hardening in request building and the HTTP transport. Reported internally.
🟡 Risk Classification: MINORApproval route: AI Review + Human Approval Classification reasons
Operational gates
Files analysed: 4 wall-e 2026.06.19-02 · policy |
🔬 Debug — why this classification?Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.
Kinds:
See issue #3 for the proposal to formalise this map as Appendix A of the standards doc. wall-e 2026.06.19-02 · debug |
🟢 Advisory review: Looks good to meThis PR still needs a human approval — wall-e cannot auto-approve it. For what it's worth, I read the diff and found nothing I'd block on. This PR adds path-traversal and injection hardening by rejecting '/', '', and ASCII control characters in path parameters and by validating the base URI is an absolute http/https URI with a host. The diff matches the stated intent, the new tests cover the added rejection cases and the removed 'encoding instead of rejecting' cases, and the logic looks correct. What I checked
This is not an approval. wall-e cannot auto-approve this PR — it is an opinion to help whoever does. Advisory review · us.anthropic.claude-sonnet-4-6 · wall-e 2026.06.19-02 |
|
| private static final String INVALID_REQUEST_PATH = "Invalid request path"; | ||
| private static final Pattern ENCODED_QUERY = Pattern.compile("[A-Za-z0-9._~*+%=&-]+"); | ||
| private static final String INVALID_BASE_URI = "Invalid base URI: it must be an absolute http or https URI with a host"; | ||
| private static final Pattern ENCODED_QUERY = Pattern.compile("(?:[A-Za-z0-9._~*+=&-]|%[0-9A-Fa-f]{2})+"); |
| private static final String INVALID_BASE_URI = "Invalid base URI: it must be an absolute http or https URI with a host"; | ||
| private static final Pattern ENCODED_QUERY = Pattern.compile("(?:[A-Za-z0-9._~*+=&-]|%[0-9A-Fa-f]{2})+"); | ||
| private static final Pattern ENCODED_DOT = Pattern.compile("%2e", Pattern.CASE_INSENSITIVE); | ||
| private static final Pattern ENCODED_SEGMENT = Pattern.compile("(?:[A-Za-z0-9._~-]|%[0-9A-Fa-f]{2})+"); |




Summary
Security hardening of request building and the HTTP transport.
Changes
/,\or ASCII control characters are now rejected with aCheckoutArgumentExceptionbefore any request is sent.httporhttpsURI with a host.API Reference
None.
Breaking changes
None. Values that could not reach a valid endpoint are now rejected before the request is sent.
Tests
Unit tests for path building, base URI validation and the request URL.
Related
Reported internally.