Resolve undecided paths, URLs, redirects and tests - #30
Merged
Merged
Conversation
A path check left undecided after its trace and recheck is asked, with the functions that call it, where the paths come from: the program's own directories or configuration, the command line or settings of the person running a local program, a whole path its caller gives, or another party's input. The program's own or the local user's clear it: 74 units on the corpus, for about $0.02.
Parameters in a path, URL or redirect were a note once a check found them, but stayed uncertain while the check was undecided. Once the Choice that settles the check was asked and does not lean toward another party's input, such a unit is a note naming the path, URL or redirect: 450 injection units had stayed uncertain that way.
A test whose hollow checks stay undecided once its recheck is asked is clear when they lean below 0.50. Labeled from the code, 4 of 43 such tests below 0.50 were hollow, against 10 of 35 above; undecided tests on the corpus went from 792 to 156, with nothing asked again.
Undecided units on the corpus went from 1.39% to 0.83% of judged units with these changes and the environment Choice before them; no review or consider changed.
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.
Stacked on #29. JevGate reports an answer that stays undecided as
uncertainrather than hiding it. On the corpus, 1.39% of judged units ended that way (2,876 units). Most came from two places:This takes undecided units to 0.83% (1,716). No review or consider changes on any of the 117 projects.
What changes
Paths, outside PHP: an undecided path check is asked, with its callers, where the paths come from:
The program's own or the local user's paths clear it. That's 74 units on the corpus, for about $0.02.
Parameters in a path, URL or redirect: a found check from the function's parameters was already a note. An undecided one stayed uncertain. Now, once the Choice that settles the check was asked and doesn't lean toward another party's input, it's the same note, naming the path, URL or redirect. 450 units had stayed uncertain that way.
Tests: a test whose hollow checks stay undecided once its recheck is asked leans: below 0.50 it's clear. Nothing is asked again.
Evidence
public/throughhttp.Dirand a storage path built from a user id and an encoded file id. None hit a documented traversal in the vulnerable apps.Review notes
src/units/questions/settle.rs("the same kind of code for several features"), which Audit 0.20.0 on 103 projects: crash and hang fixes, security checks, precision caps #26's per-feature file kind already treats as one job. The other is onasked_checks, unchanged here.