How to triage security findings before changing code
Hi AUDIT documentation · Updated:
Who this is for: Developers, AppSec reviewers, and engineering leads turning security results into remediation work.
The practical answer
Confirm the target revision and the evidence behind a finding, check whether the relevant behavior is reachable in the application, and assess its impact under the actual authorization and deployment rules. Assign an owner and a priority, document uncertainty, and validate the proposed fix through review and tests. A severity label helps organize work; it is not a substitute for this decision.
Start with a traceable review context
A finding is a claim about a particular input and configuration. Before deciding what to fix, record the repository, branch or commit, analysis settings, and any excluded code. Results from an older revision may describe a problem already changed; results from a partial scan may omit relevant guards or dependencies.
Read the summary together with the indicated location and supporting context. Distinguish what the tool observed from what it inferred. If a claim lacks enough evidence for a decision, record that gap and request the missing context. Do not turn an uncertain result into either a confirmed incident or a dismissed false positive merely to clear a queue.
Check evidence, applicability, and impact
Static analysis can identify suspicious patterns without knowing all runtime behavior. Review the surrounding logic and the application’s requirements. A risk can depend on permissions, data ownership, configuration, or a call path that the scan did not fully resolve. Answer these questions through an authorized code and configuration review.
- Evidence: which part of the code or configuration supports the finding?
- Applicability: does the affected behavior exist in the revision being shipped?
- Reachability: can the relevant application flow reach it under the intended permissions?
- Impact: which users, assets, or trust boundaries could be affected?
- Existing controls: is protection enforced consistently on the actual path, rather than only assumed?
- Uncertainty: what is still unknown, who can answer it, and when will it be reviewed?
A synthetic tenant-boundary example
The public Hi AUDIT WebMCP demo includes sample finding HA-103, titled “Invoice lookup misses tenant boundary.” It illustrates an authorization review: a record operation must respect the authenticated tenant’s ownership rules. This is synthetic demonstration data, not a result from a customer repository or evidence of a live incident.
The reviewer should inspect where tenant identity comes from, where ownership is enforced, and whether every relevant record access follows the same policy. Assign the change to the team that owns that boundary. A remediation should enforce the trusted tenant context and include negative authorization coverage in the team’s own test environment. Review the surrounding operations as well as the line highlighted by the tool.
Record a decision that another reviewer can follow
Keep severity and delivery priority separate. Severity summarizes the finding’s possible consequence; priority also reflects exposure, affected assets, compensating controls, and the cost of delaying remediation. Use the team’s own response policy instead of copying a generic deadline into every issue.
After a proposed fix, confirm that it enforces the intended requirement and does not break legitimate use. Review the change, run the relevant tests, and repeat the analysis where appropriate. A disappearing warning alone does not establish that the security boundary is correct. Retain the decision and evidence so future reviews can distinguish a fixed issue from a suppressed rule.
| Decision field | What to record |
|---|---|
| Finding and scope | Identifier, target revision, and affected component. |
| Evidence | Relevant code context and the assumptions checked. |
| Status | Investigating, confirmed, resolved, or dismissed with a reason. |
| Priority and owner | Delivery decision, accountable team, and next review point. |
| Validation | Reviewed change, relevant test outcome, and remaining limitations. |
Common questions
Should every high-severity result become the highest-priority ticket?
Review impact and exposure first, then apply your team’s policy. Keep the tool’s severity and the team’s delivery priority visible as separate fields.
When is it reasonable to dismiss a finding?
When the review establishes that the claim does not apply or a verified control prevents the reported behavior. Document that reasoning and its scope, including the revision and relevant configuration.
Does an AI-generated fix finish the review?
No. A reviewer needs to check the proposed change against the security requirement, legitimate behavior, and relevant tests. The team remains responsible for the decision to ship.
