Skip to content

fix(api): compile header *value* regexp for scope rules#155

Open
MrEchoFi wants to merge 1 commit into
dstotijn:mainfrom
MrEchoFi:fix/scope-header-value-regex
Open

fix(api): compile header *value* regexp for scope rules#155
MrEchoFi wants to merge 1 commit into
dstotijn:mainfrom
MrEchoFi:fix/scope-header-value-regex

Conversation

@MrEchoFi

Copy link
Copy Markdown

While reading through the scope handling, I noticed a small copy-paste slip in SetScope (pkg/api/resolvers.go): the header value regexp is compiled from rule.Header.Key instead of rule.Header.Value. So the key pattern gets compiled twice and the value pattern a user sets is silently thrown away.

Since scope decides what traffic Hetty logs, shows, and intercepts, this quietly breaks any rule that's meant to match on a header's value — it ends up matching on the header key instead. That means some in-scope traffic gets missed, and some out-of-scope traffic sneaks in, with no error to hint at why.

It's a one-line fix:

Before:

    headerValue, err = stringPtrToRegexp(rule.Header.Key)   // oops, .Key

After:

    headerValue, err = stringPtrToRegexp(rule.Header.Value) // .Value

No API or behavior change beyond making the header-value matcher actually use the value pattern like it's supposed to.

SetScope compiled rule.Header.Key twice, so a scope rule's header
**value** pattern was silently ignored and replaced by the key pattern.
Scope drives which traffic is shown/logged/intercepted, so this caused
incorrect matching: rules meant to match on a header value matched on the
header key instead, both missing intended in-scope traffic and including
unintended traffic.
@MrEchoFi MrEchoFi force-pushed the fix/scope-header-value-regex branch from 71bf589 to 18f9d2b Compare June 14, 2026 22:07
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