Skip to content

Precision: nonlocal write-back and a broader regression corpus #71

Closed

Description

@SizzleUnrlsd

Improve precision and broaden the corpus that guards it.

  • nonlocal writes flow back to the enclosing function (the last documented approximation).
  • Add public repositories of other kinds to tests/regression/repositories.toml (async web, workers, data pipelines, larger CLIs) and review every new finding against the code.
  • Fix the false positives and false negatives the new repositories reveal.

Gaps found while measuring on large projects (#69), to close here:

  • Frontend: NamedExpr (walrus), yield from and starred assignment targets reject the whole file as a syntax-error (17 files in healthchecks, 22 in rich, 57 in wagtail); support them so those files are analysed.
  • Secrets: pure-hex hashes under non-credential keys in JSON data files (commit ids, checksums) flood high-entropy-string (5 500 findings in rich's benchmark results, 1 900 in wagtail); skip hex digests unless the name is credential-like.
  • Secrets: hardcoded-credential in test fixtures (37 of 39 in healthchecks, most of wagtail's 148) should be reported at low confidence or skipped under test directories.
  • Django: redirect("url-name", tainted_arg) resolves a URL pattern and is not an open redirect; only the first argument is a redirect target (77 findings in healthchecks, 31 in wagtail).

Gaps found by the broadened corpus (dvpwa, pygoat, full-stack-fastapi-template, httpie, luigi):

  • Frontend: class keyword arguments (class Task(Base, metaclass=Register)) and with targets other than a single name reject whole files (12 files in luigi, 2 in httpie, 1 in the FastAPI template).
  • Sources: environment and process-output are operator-controlled, not attacker-controlled; like argv they should not carry COMMAND and PATH (httpie daemons, luigi contrib and tests).
  • aiohttp models are missing, so dvpwa's documented SQL injections and XSS are silent (moved to Detection coverage: syntactic rules and models for aiohttp, Tornado, Bottle and database drivers #70).

Activity

  1. SizzleUnrlsd commented on Sep 5, 2026

    @SizzleUnrlsd
    ContributorAuthor

    Done: nonlocal write-back (#84), corpus of 19 repositories (#85), and the fixes it revealed (#80, #81, #82, #83, #86, #87). The aiohttp models move to #70.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions