Security at input boundaries and in CI gates
Untrusted strings reached privileged code, and a security gate failed builds without saying why. I closed each gap with validation at the boundary and tests that fail when the guard is removed.

The problem
In PgQueuer, seven configurable database object names went into DDL and queries unquoted, so a crafted name could run as SQL.
In Prefect, bundle dependencies went straight into a pip install subprocess, so a flag could slip in. In OWASP cve-lite-cli, a run could exit 1 with a green all-clear and nothing that named the gate.
What I built
PgQueuer in Python and PostgreSQL. Added an identifier validator for the seven settings, accepting dotted schema and table names, with tests.
Prefect in Python. Rejected flag-shaped lines and validated each dependency as PEP 508 before the subprocess, then added the tests the maintainer asked for.
OWASP cve-lite-cli in TypeScript. Printed the reason the gate tripped, made the ratchet gate fail when no baseline exists, and pinned the exit code separately. I mutation-tested my own tests to prove they fail without the guard.
extension.js. Patched two high-severity dependency advisories with the test suite green.
How the work ran
Each pull request went through the maintainers' review rounds until every requested change was done.
Result
3 pull requests merged in OWASP cve-lite-cli.
The OWASP maintainer reran the full suite on my ratchet branch, 168 suites and 2,371 tests, all green.
The Prefect fix merged into a project with 24,061 GitHub stars.
2 high-severity advisories fixed in extension.js.
“Everything from the last round is done, and done the way that was suggested rather than worked around.”
Evidence
- github.com/janbjorge/pgqueuer/pull/946PgQueuer PR 946
- github.com/PrefectHQ/prefect/pull/21916Prefect PR 21916
- github.com/OWASP/cve-lite-cli/pull/1239OWASP cve-lite-cli PR 1239
- github.com/OWASP/cve-lite-cli/pull/1278OWASP cve-lite-cli PR 1278
- github.com/OWASP/cve-lite-cli/pull/1314OWASP cve-lite-cli PR 1314
- github.com/extension-js/extension.js/pull/414extension.js PR 414
These projects are public, so they are named. Dependency updates are routine work and are listed as such.


