Skip to content

codeql: paths-ignore 6 un-modelable java/sql-injection residuals #520-#525 (Task 8) - #43

Merged
natechadwick-intsof merged 1 commit into
mainfrom
codeql/sql-injection-2
Aug 15, 2026
Merged

codeql: paths-ignore 6 un-modelable java/sql-injection residuals #520-#525 (Task 8)#43
natechadwick-intsof merged 1 commit into
mainfrom
codeql/sql-injection-2

Conversation

@natechadwick-intsof

Copy link
Copy Markdown
Collaborator

Summary

Closes 6 CodeQL java/sql-injection High alerts (#520-#525) that remained open after PR #36 (Task 4).

Why paths-ignore

Every sink already carries a runtime SecureStringUtils barrier on main (requireSqlObjectNameOrNull / requireSingleSqlStatement / requireFactorySqlStatement), but GHAS does not load local model packs, so the in-repo sanitizer is not a recognized barrier, and sink-line // codeql[java/sql-injection] comments are ignored. This is exactly the PR #36 residual situation (#519/#526/#527) — same rule family, same guard helpers, same path-level pattern.

Alert File Runtime guard already on main
#520 PSJdbcResultSetIteratorStep.java requireFactorySqlStatement(m_statement) before executeQuery
#521 PSJdbcTableFactory.java requireSqlObjectNameOrNull(tableSchema.getName()) before COUNT(*)
#522 PSJdbcTableMetaData.java requireSqlObjectNameOrNull(m_tableName/m_schema) before getColumns
#523 PSJdbcTableMetaData.java same guards before getPrimaryKeys
#524 PSOSimpleSqlQuery.java requireSingleSqlStatement(query) before prepareStatement
#525 PSSQLStatement.java requireSingleSqlStatement(sql) before executeQuery

Changes

  • .github/codeql/codeql-config.yml — 5 new paths-ignore entries with justification
  • suppressions.md — 6 new rows (verbatim justification convention; verify-suppressions.py PASS, 0 warnings)
  • CHANGELOG.md — Task 8 sql-injection residual entry

No Java code changed in this PR — the runtime guards were already landed in PR #36's sink hardening.

Verification

python3 scripts/verify-suppressions.py  # PASS, 0 warnings
python3 -c "import yaml; yaml.safe_load(open('.github/codeql/codeql-config.yml'))"  # YAML OK

Notes

  • No Maven dependency change; *.version properties untouched.
  • Per AGENTS.md, Version.properties was not modified.

…-#525 (Task 8)

The 6 remaining sql-injection alerts after PR #36 sit at JDBC sinks that
already carry runtime SecureStringUtils guards on main
(requireSqlObjectNameOrNull / requireSingleSqlStatement /
requireFactorySqlStatement). GHAS does not load local model packs, so the
in-repo sanitizer is not a recognized barrier, and it ignores
// codeql[java/sql-injection] on or above the sink.

Add 5 path-level residuals to codeql-config.yml paths-ignore + 6
suppressions.md rows (same mechanism as PR #36's #519/#526/#527):

- PSJdbcResultSetIteratorStep.java  #520
- PSJdbcTableFactory.java           #521
- PSJdbcTableMetaData.java          #522 #523
- PSOSimpleSqlQuery.java            #524
- PSSQLStatement.java               #525

No Java code changed - runtime guards already landed in PR #36.
verify-suppressions.py: PASS (0 warnings).
@natechadwick-intsof
natechadwick-intsof merged commit 29423dd into main Aug 15, 2026
3 checks passed
@natechadwick-intsof
natechadwick-intsof deleted the codeql/sql-injection-2 branch August 15, 2026 00:23
@natechadwick-intsof

Copy link
Copy Markdown
Collaborator Author

Superseded by #50 (consolidated onto current main so the CHANGELOG.md / codeql-config.yml / suppressions.md conflicts no longer block merge). Closing this PR.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant