v2.2.0: lean BApp build — remove native-duplicating checks, cross-reference instead - #8
Merged
Merged
Conversation
…erence instead Reframes the extension to cover only the API-specific categories Burp's native scanner does not test. Native duplication is the #1 BApp-Store rejection reason, so the duplicating checks are removed here and cross-referenced statically instead (DAST cannot read the site map, so dynamic linking is not possible — per PortSwigger review). Removed (duplicated native scanner): - InjectionCheck (+ injection/AuthBypassTester, InjectionPayloads) — SQL/ command/JS injection, reflected XSS → native injection checks - SsrfCheck → native out-of-band resource load / file path traversal - MethodFuzzingCheck → native HTTP TRACE/PUT method checks - BrokenAuthCheck → native JWT / unencrypted-communications checks - FunctionLevelAuthCheck → native Broken access control - SecurityMisconfigCheck → native CORS / CSP / HSTS / clickjacking / source-disclosure checks Trimmed part-duplicates: - BrokenObjectAuthCheck: drop the unauthenticated-access sub-test (= native Broken access control); ID-manipulation and enumeration now require a *different object* vs baseline (content comparison), not just a 2xx — justifies Firm confidence. Adds a "Related Burp checks" line. - ExcessiveDataExposureCheck: drop sensitive-field-by-name detection (= native value-leak issues); keep response-shape signals (unbounded arrays, excessive field counts). Adds a "Related Burp checks" line. Confidence / severity adjustments: - MassAssignmentCheck: combo + privesc issues note echoed != persisted; combo lowered Critical/Certain -> High/Firm. - ResourceConsumptionCheck: large-response Medium/Certain -> Low/Tentative; missing-rate-limit -> Information/Tentative. - UnsafeApiConsumptionCheck: webhook pointer Medium -> Information. - ParameterPollutionCheck: revert the over-correction that suppressed 2xx->4xx. For HPP a marker-induced 200->400 means the server reads the last value and discards the first — a real override primitive (reviewer- confirmed). Now fires on any status change, kept at Tentative. - InventoryManagementCheck: drop /v1/ from the deprecated pattern (it is the current version on most APIs); drop /swagger, /api-docs, /openapi from debug paths (intentional published docs, overlap native). Docs: README + BURP_DAST_GUIDE now lead with scope and an OWASP->native mapping; VALIDATION_GUIDE rewritten for the 9 lean checks; CLAUDE.md notes the main (lean, 9) vs full (15) branch split and fixes the HPP detection- discipline row. Version 2.1.2 -> 2.2.0. The complete build is preserved on the `full` branch and the v2.1.2 tag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.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.
What & why
Repositions the extension as the lean, BApp-Store build: it now covers only the API-specific OWASP categories Burp's native scanner does not already test. Native duplication is the single most common BApp-Store rejection reason, so the duplicating checks are removed here and cross-referenced statically instead.
DAST cannot read or add to the site map, so dynamic cross-referencing (audit-issue listener, own issue table) is not possible — confirmed with PortSwigger review. The viable approach is a static "Related Burp Scanner checks" line on the surviving part-overlap issues plus a README/DAST-guide OWASP → native mapping.
The complete re-detecting build (15 checks) is preserved on the
fullbranch and thev2.1.2tag for anyone who wants a one-extension sweep and accepts the overlap.Removed (duplicated the native scanner)
InjectionCheck(+injection/helpers)SsrfCheckMethodFuzzingCheckBrokenAuthCheckFunctionLevelAuthCheckSecurityMisconfigCheckTrimmed part-duplicates
Confidence / severity adjustments
2xx → 4xx. For HPP, a marker-induced200 → 400means the server reads the last value and discards the legitimate first one — a genuine override primitive (a reviewer confirmed a suppressed case was real). Now fires on any status change, kept at Tentative./v1/from the deprecated pattern (it's the current version on most APIs → false positive on nearly every modern API); dropped/swagger,/api-docs,/openapifrom debug paths (intentional published docs, overlap native).Docs
main(lean, 9 checks) vsfull(15 checks) split and fixes the HPP row in the detection-discipline checklist (it previously encoded the over-correction this PR reverts).2.1.2→2.2.0across pom.xml, CI, banner, and docs.Verification
mvn clean package -DskipTestsis clean; default build producesburp-api-scanner-2.2.0.jar(the BApp pipeline builds the default).🤖 Generated with Claude Code