Skip to content

fix(client): security hardening - #480

Open
armando-rodriguez-cko wants to merge 1 commit into
masterfrom
fix/INT-1827-security-hardening
Open

armando-rodriguez-cko wants to merge 1 commit into
masterfrom
fix/INT-1827-security-hardening

Conversation

@armando-rodriguez-cko

Copy link
Copy Markdown
Contributor

Summary

Security hardening of path parameters.

Changes

  • Path parameters containing /, \ or ASCII control characters are now rejected with a ValueError before any request is sent, instead of being percent-encoded.
  • Valid ids are unchanged on the wire.

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 the path helper and for every endpoint that takes a path parameter.

Related

Reported internally.

Follow-up hardening of path parameters. Reported internally.
@armando-rodriguez-cko
armando-rodriguez-cko requested a review from a team November 13, 2026 13:00
@agent-wall-e

agent-wall-e Bot commented Nov 13, 2026

Copy link
Copy Markdown

🟢 Risk Classification: LOW

Approval route: AI Auto-Approval
Rollback controls: Automated Instant Rollback + feature flags

Classification reasons

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:This change only tightens input validation in an existing path-encoding helper by rejecting additional invalid characters before encoding, without changing the function signature, adding new endpoints, persisting data, or crossing any trust boundary.

Operational gates

  • ✅ jira_ticket (INT-1827)
  • ✅ independent_review

Files analysed: 3


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 13, 2026

Copy link
Copy Markdown
🔬 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.

Reason code Kind Clause Meaning
no_low_class_matched informational §2.2 (fall-through) None of the deterministic Low classes (§2.2.3, §2.2.4, §2.2.7, docs-only) applied; classifier fell through to LLM evaluation.
prod_source_modified informational §2.1 M7 (informational) At least one file is non-doc, non-test, non-IaC — i.e. application source code was modified.
2.2.6_logical_extension — This change only tightens input validation in an existing path-encoding helper by rejecting additional invalid characters before encoding, without changing the function signature, adding new endpoints, persisting data, or crossing any trust boundary. classifying §2.2.6 Sonnet 4.6 evaluator promoted minor → low: the change reuses existing code paths and does not cross a trust boundary.

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@sonarqubecloud

Copy link
Copy Markdown

@agent-wall-e agent-wall-e Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Auto-approved — this PR meets all Low-risk criteria.

All checks passed, no unresolved comments, and the change classification is:

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:This change only tightens input validation in an existing path-encoding helper by rejecting additional character classes before encoding, without modifying any endpoint, data model, auth logic, or external integration.

wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant