fix(analyzer): filter license boilerplate from EA3 static findings (#312) - #328
Open
rodboev wants to merge 2 commits into
Open
fix(analyzer): filter license boilerplate from EA3 static findings (#312)#328rodboev wants to merge 2 commits into
rodboev wants to merge 2 commits into
Conversation
…VIDIA#312) Signed-off-by: Rod Boev <rod.boev@gmail.com>
rng1995
requested changes
Aug 5, 2026
rng1995
left a comment
Collaborator
There was a problem hiding this comment.
[Automated SkillSpector Review]
Requesting changes. This suppresses every EA3 finding in any text-like file whose basename resembles LICENSE, COPYING, or NOTICE, without verifying that the matched text is license boilerplate. Skill files remain untrusted regardless of their name, so malicious excessive-agency instructions can be moved into LICENSE.md and bypass EA3 entirely. Please scope suppression to recognized boilerplate content (or otherwise validate legal-file content) and add an adversarial regression showing that non-license instructions in a license-named file remain detectable.
rng1995
reviewed
Aug 5, 2026
NVIDIA#312) Only suppress an EA3 finding on a text-like legal basename when the matched line is recognized license boilerplate content, so instructions smuggled into license-named files stay reported. Signed-off-by: Rod Boev <rodboev@users.noreply.github.com>
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.
Summary
Static-only scans currently report EA3 Scope Creep findings from Apache-2.0 boilerplate in LICENSE, COPYING, and NOTICE files. This change keeps those files in the scan inventory while filtering the EA3 false positive only where the matched line is recognized license boilerplate in a text-like legal-basename file.
Closes #312
Root cause
The static runner applies EA3 to every cached text-like component. Apache-2.0 contains the phrase not limited to, which matches EA3 even though license text is not skill instruction content. The default LLM path can discard these matches later, but --no-llm reports them directly and sends avoidable findings through the analysis pipeline.
A filename-only suppression cannot be the whole fix: skill filenames are attacker-controlled, so a file named LICENSE.md could hide an excessive-agency instruction from EA3. Suppression therefore also requires the matched line to be recognized license boilerplate, which closes that bypass.
Diff Notes
The suppression behavior follows the reproduction documented in issue 312, including the clarification that the false positive is exposed by --no-llm scans.
Scope
The filter applies only to EA3 matches whose line is recognized license boilerplate inside a text-like legal basename file. License-named files with non-boilerplate content are still reported. Other findings, non-license files, inventory, and report behavior remain unchanged.
Verification