Skip to content

fix(pipeline): reject non-HTTP slash arguments - #1389

Open
Yyunozor wants to merge 1 commit into
DeusData:mainfrom
Yyunozor:fix/arg-url-false-positives
Open

fix(pipeline): reject non-HTTP slash arguments#1389
Yyunozor wants to merge 1 commit into
DeusData:mainfrom
Yyunozor:fix/arg-url-false-positives

Conversation

@Yyunozor

Copy link
Copy Markdown

Summary

  • apply the existing HTTP route-literal guard before creating arg_url routes
  • reject raw slash expressions such as JS regex literals
  • reject slash strings passed to non-HTTP string and regex consumers
  • add focused regressions for filesystem paths and a genuine API path

Root cause

detect_url_in_args() normalized every slash-prefixed call argument and
created a Route node directly. That path bypassed the shared route-literal
guard already used by the later route-node pass, so local filesystem paths and
regex operands could become Route nodes and HTTP_CALLS edges.

The change first rejects slash-prefixed raw expressions (string literals and
propagated constants are carried separately), routes the remaining heuristic
through the shared guard, and extends the callee filter to non-HTTP string
consumers such as replace, match, search, test, and exec.

Validation

  • scripts/test.sh --suites 'infrascan pipeline' — 241 passed
  • the same tests on the parent fail on sink(/<table/i) and
    template.replace('/html/g', ...)
  • full suite — 6821 passed, 3 failed, 4 skipped
  • the parent reproduces the same failures: cli (255 passed, 2 failed) and
    daemon_runtime (42 passed, 1 failed)

This addresses the arg_url regex/path bucket of #598. GraphQL and
whole-config-text classification remain out of scope.

Signed-off-by: Yyunozor <yyunozor@icloud.com>
@Yyunozor
Yyunozor requested a review from DeusData as a code owner July 31, 2026 18:35
@github-actions

Copy link
Copy Markdown

Thanks for opening this — it has been seen, and it is queued.

This note is automated, but it is not a brush-off: it exists so you know where your PR stands instead of having to guess from silence.

Current review status: working through a backlog. 0.9.1-rc.1 is out, so the release freeze that held reviews is over — but it left a large queue of open pull requests behind it, and we are reading through them oldest-first. The background is in discussion #1144.

What that means for this PR, concretely:

  • It will not be closed for inactivity. No stale bot touches pull requests here.
  • It may still sit a while before a human reads it. That is on us, not on you.
  • Older PRs are read first, so a recent one is not being skipped — it is behind a queue.

Things that will genuinely speed it up whenever review does happen:

  • Keep it rebased on main — the tree is moving quickly right now, and a conflicting branch cannot be reviewed as the diff you intended.
  • Get CI green, or say which failures you believe are pre-existing.
  • Keep the change to one claim. Bundled features and refactors get split before they get merged, which costs you a round trip.
  • Every commit needs a sign-off (git commit -s) — CI enforces DCO.

If this fixes a bug, a reproduction we can run is worth more than a description of the symptom.

Thanks for contributing, and sorry in advance for the wait.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant