Skip to content

[Java] Issue resolving dependences #19458

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
KylerKatz opened this issue May 3, 2025 · 0 comments
Open

[Java] Issue resolving dependences #19458

KylerKatz opened this issue May 3, 2025 · 0 comments
Labels
question Further information is requested

Comments

@KylerKatz
Copy link

KylerKatz commented May 3, 2025

These are the same across both machines
Codeql CLI Version: 2.20.3
Local Codeql Files: e27d8c16729588259f8143c7ed4569d517b0de10

Hello,

I am trying to figure out an issue that I am having when it comes to getting the same results as I have on my Windows machine on my Linux machine. This first started when I cloned my work over to my Linux machine and noticed that one of my queries that works just fine on my Windows machine was failing. Some of my queries also have different results.

This leads me to think there is an issue with how the CodeQL dependencies are being resolved across my two machines. Since my Windows version is working, I decided to look into the logs.

This is what I see

[2025-05-02 15:21:36] Calling plumbing command: codeql resolve extensions-by-pack --search-path=C:\Users\kyler\OneDrive\Documents\Work\hawaii-pique-cwe200\codeql --qlconfig-file=C:\Users\kyler\OneDrive\Documents\Work\hawaii-pique-cwe200\backend\qlconfig.yml --include-extension-row-locations -- C:\Users\kyler\OneDrive\Documents\Work\hawaii-pique-cwe200\codeql\codeql-custom-queries-java
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] custom-codeql-queries: not 0.0.1 {root: [email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] custom-codeql-queries: 0.0.1 {custom-codeql-queries: not 0.0.1 {root: [email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] custom-codeql-queries: * [*], codeql/java-all: not * [*] {dependency: custom-codeql-queries@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 1] custom-codeql-queries: 0.0.1
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/java-all: * [*] {custom-codeql-queries: * [*], codeql/java-all: not * [*] {dependency: custom-codeql-queries@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/dataflow: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/mad: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/rangeanalysis: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/regex: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/threat-models: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/tutorial: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/typeflow: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/typetracking: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/util: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/xml: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 2] codeql/java-all: 6.1.1-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/xml: * [*] {codeql/java-all: * [*], codeql/xml: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/util: * [*] {codeql/java-all: * [*], codeql/util: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/typetracking: * [*] {codeql/java-all: * [*], codeql/typetracking: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/typeflow: * [*] {codeql/java-all: * [*], codeql/typeflow: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/tutorial: * [*] {codeql/java-all: * [*], codeql/tutorial: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/threat-models: * [*] {codeql/java-all: * [*], codeql/threat-models: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/regex: * [*] {codeql/java-all: * [*], codeql/regex: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/rangeanalysis: * [*] {codeql/java-all: * [*], codeql/rangeanalysis: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/mad: * [*] {codeql/java-all: * [*], codeql/mad: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/dataflow: * [*] {codeql/java-all: * [*], codeql/dataflow: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/dataflow: * [*], codeql/ssa: not * [*] {dependency: codeql/dataflow@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/dataflow: * [*], codeql/typetracking: not * [*] {dependency: codeql/dataflow@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/dataflow: * [*], codeql/util: not * [*] {dependency: codeql/dataflow@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 3] codeql/dataflow: 1.1.10-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/ssa: * [*] {codeql/dataflow: * [*], codeql/ssa: not * [*] {dependency: codeql/dataflow@* [*] requires codeql/[email protected]}}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/mad: * [*], codeql/dataflow: not * [*] {dependency: codeql/mad@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/mad: * [*], codeql/util: not * [*] {dependency: codeql/mad@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 4] codeql/mad: 1.0.16-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/rangeanalysis: * [*], codeql/util: not * [*] {dependency: codeql/rangeanalysis@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 5] codeql/rangeanalysis: 1.0.16-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/regex: * [*], codeql/util: not * [*] {dependency: codeql/regex@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 6] codeql/regex: 1.0.16-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/ssa: * [*], codeql/util: not * [*] {dependency: codeql/ssa@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 7] codeql/ssa: 1.0.16-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 8] codeql/threat-models: 1.0.16-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 9] codeql/tutorial: 1.0.16-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/typeflow: * [*], codeql/util: not * [*] {dependency: codeql/typeflow@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 10] codeql/typeflow: 1.0.16-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/typetracking: * [*], codeql/util: not * [*] {dependency: codeql/typetracking@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 11] codeql/typetracking: 1.0.16-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 12] codeql/util: 2.0.3-dev
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/xml: * [*], codeql/util: not * [*] {dependency: codeql/xml@* [*] requires codeql/[email protected]}
[2025-05-02 15:21:36] [SPAMMY] resolve extensions-by-pack> [DECISION 13] codeql/xml: 1.0.16-dev

Now here is my qlpack.yml located at codeql/codeql-custom-queries-java/qlpack.yml

---
library: false
warnOnImplicitThis: false
name: custom-codeql-queries
version: 0.0.1
dependencies:
  codeql/java-all: 6.1.0
libraries:
  - name: SensitiveInfo
    path: /SensitiveInfo
dataExtensions:
  - SensitiveInfo/*.yml

Here is also my codeql-pack.lock.yml

---
lockVersion: 1.0.0
dependencies:
  codeql/dataflow:
    version: 1.1.9
  codeql/java-all:
    version: 6.1.0
  codeql/mad:
    version: 1.0.15
  codeql/rangeanalysis:
    version: 1.0.15
  codeql/regex:
    version: 1.0.15
  codeql/ssa:
    version: 1.0.15
  codeql/threat-models:
    version: 1.0.15
  codeql/tutorial:
    version: 1.0.15
  codeql/typeflow:
    version: 1.0.15
  codeql/typetracking:
    version: 1.0.15
  codeql/util:
    version: 2.0.2
  codeql/xml:
    version: 1.0.15
compiled: false

What sticks out to me is that all the versions in the logs have -dev at the end of them. So they are not using what is in these two files. I am unsure why. Due to the queries running just fine, with the -dev. I updated my qlpack.yml to use those versions instead. So that now it is

name: custom-codeql-queries
version: 0.0.1
library: false
warnOnImplicitThis: false

dependencies:
  codeql/java-all: 6.1.1-dev
  codeql/dataflow: 1.1.10-dev
  codeql/mad: 1.0.16-dev
  codeql/rangeanalysis: 1.0.16-dev
  codeql/regex: 1.0.16-dev
  codeql/threat-models: 1.0.16-dev
  codeql/tutorial: 1.0.16-dev
  codeql/typeflow: 1.0.16-dev
  codeql/typetracking: 1.0.16-dev
  codeql/util: 2.0.3-dev
  codeql/xml: 1.0.16-dev
  codeql/ssa: 1.0.16-dev

libraries:
  - name: SensitiveInfo
    path: /SensitiveInfo

dataExtensions:
  - SensitiveInfo/*.yml

However, when I do codeql pack install my codeql-pack.lock.yml becomes

---
lockVersion: 1.0.0
dependencies: {}
compiled: false

I believe this indicates that those versions can't be found.

For reference, here is what my Linux machine outputs

[2025-05-03 01:03:28] Calling plumbing command: codeql resolve extensions-by-pack --search-path=/app/codeql --qlconfig-file=/app/backend/qlconfig.yml --include-extension-row-locations -- /app/codeql/codeql-custom-queries-java
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] custom-codeql-queries: not 0.0.1 {root: [email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] custom-codeql-queries: 0.0.1 {custom-codeql-queries: not 0.0.1 {root: [email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] custom-codeql-queries: * [*], codeql/java-all: not * [*] {dependency: custom-codeql-queries@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 1] custom-codeql-queries: 0.0.1
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/java-all: * [*] {custom-codeql-queries: * [*], codeql/java-all: not * [*] {dependency: custom-codeql-queries@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/dataflow: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/mad: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/rangeanalysis: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/regex: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/threat-models: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/tutorial: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/typetracking: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/java-all: * [*], codeql/util: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 2] codeql/java-all: 0.8.10
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/util: * [*] {codeql/java-all: * [*], codeql/util: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/typetracking: * [*] {codeql/java-all: * [*], codeql/typetracking: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/tutorial: * [*] {codeql/java-all: * [*], codeql/tutorial: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/threat-models: * [*] {codeql/java-all: * [*], codeql/threat-models: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/regex: * [*] {codeql/java-all: * [*], codeql/regex: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/rangeanalysis: * [*] {codeql/java-all: * [*], codeql/rangeanalysis: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/mad: * [*] {codeql/java-all: * [*], codeql/mad: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/dataflow: * [*] {codeql/java-all: * [*], codeql/dataflow: not * [*] {dependency: codeql/java-all@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/dataflow: * [*], codeql/ssa: not * [*] {dependency: codeql/dataflow@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/dataflow: * [*], codeql/typetracking: not * [*] {dependency: codeql/dataflow@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/dataflow: * [*], codeql/util: not * [*] {dependency: codeql/dataflow@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 3] codeql/dataflow: 0.2.1
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DERIVATION] codeql/ssa: * [*] {codeql/dataflow: * [*], codeql/ssa: not * [*] {dependency: codeql/dataflow@* [*] requires codeql/[email protected]}}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 4] codeql/mad: 0.2.10
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/rangeanalysis: * [*], codeql/util: not * [*] {dependency: codeql/rangeanalysis@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 5] codeql/rangeanalysis: 0.0.9
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/regex: * [*], codeql/util: not * [*] {dependency: codeql/regex@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 6] codeql/regex: 0.2.10
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/ssa: * [*], codeql/util: not * [*] {dependency: codeql/ssa@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 7] codeql/ssa: 0.2.10
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 8] codeql/threat-models: 0.0.9
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 9] codeql/tutorial: 0.2.10
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [INCOMPATIBILITY] codeql/typetracking: * [*], codeql/util: not * [*] {dependency: codeql/typetracking@* [*] requires codeql/[email protected]}
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 10] codeql/typetracking: 0.2.10
[2025-05-03 01:03:28] [SPAMMY] resolve extensions-by-pack> [DECISION 11] codeql/util: 0.2.10

So, to see if I could get it to work on Linux, I used the updated qlpack.yml on that machine and got this

# cat qlpack.yml
name: custom-codeql-queries
version: 0.0.1
library: false
warnOnImplicitThis: false

dependencies:
  codeql/java-all: 6.1.1-dev
  codeql/dataflow: 1.1.10-dev
  codeql/mad: 1.0.16-dev
  codeql/rangeanalysis: 1.0.16-dev
  codeql/regex: 1.0.16-dev
  codeql/threat-models: 1.0.16-dev
  codeql/tutorial: 1.0.16-dev
  codeql/typeflow: 1.0.16-dev
  codeql/typetracking: 1.0.16-dev
  codeql/util: 2.0.3-dev
  codeql/xml: 1.0.16-dev
  codeql/ssa: 1.0.16-dev

libraries:
  - name: SensitiveInfo
    path: /SensitiveInfo

dataExtensions:
  - SensitiveInfo/*.yml

# codeql pack install
ERROR: No valid pack solution found:
Because 'custom-codeql-queries' depends on 'codeql/[email protected]', which does not match any available versions of 'codeql/typeflow', version solving failed.
 (/app/codeql/codeql-custom-queries-java/qlpack.yml:1,1-1)
A fatal error occurred: A 'codeql pack resolve-dependencies' operation failed with error code 2

This is telling me that that dependence doesn't exist, which confuses me because they both have the same ql lib files from the tree at the beginning of this post.

For reference, this query works fine on my Windows machine

/**
 * @name CWE-204: Observable discrepancies in sensitive error messages
 * @description Detects if statements within sensitive contexts that produce different error messages based on conditional branches, which could lead to observable discrepancies.
 * @kind problem
 * @problem.severity warning
 * @id java/error-message-discrepancies/204
 * @tags security
 *       external/cwe/cwe-204
 * @cwe CWE-204
 */

 import java
 import semmle.code.java.dataflow.FlowSources
 import semmle.code.java.security.SensitiveActions
 import semmle.code.java.controlflow.Guards
 
 // Class for String literals potentially used in observable discrepancies
 class SensitiveMessageLiteral extends StringLiteral {
   SensitiveMessageLiteral() {
     this.getValue().regexpMatch(".*(Login Successful|Invalid password|Invalid username|Access (Granted|Denied)|Verification (Successful|Failed)|Authentication (Successful|Failed)|User not found|Password cannot be empty|Username cannot be empty|Input cannot be null|Input cannot be empty|'admin' is a reserved keyword|Verification Successful: Email found in system|Verification Failed: Email not registered|Access Granted: Admin has full access|Access Granted: User can access public files|Access Denied: User cannot access private files|Access Denied: Unknown role|Download Authorized|Download Denied: Insufficient privileges|Authentication Successful: Device recognized|Authentication Failed: Device not recognized in local network|Authentication Failed: Unknown device).*")
   }
 }
 
 from IfStmt outerIf, IfStmt innerIf, SensitiveMessageLiteral innerVal, SensitiveMessageLiteral outerVal
 where
   // Check if the innerIf is directly within the body of outerIf
   outerIf.getAChild*() = innerIf and
   // Check for specific message literals in the then and else branches of the inner if-statement and the else branch of the outer if-statement
   innerIf.getElse().getBasicBlock().getANode().asExpr() = innerVal and
   outerIf.getElse().getBasicBlock().getANode().asExpr() = outerVal and
   // Ensure the innerIf and outerIf are not the same
   innerVal.getValue() != outerVal.getValue()
   
 select outerIf.getBasicBlock(), "CWE-204: Observable discrepancies due to different error messages in nested if-statements."

However, I get this on the Linux one
ERROR: asExpr() cannot be resolved for type ControlFlowGraph::ControlFlowNode (/app/codeql/codeql-custom-queries-java/CWE-204/cwe204-nested-condition.ql:29,49-55)

I am thinking that because my Windows machine was my main development machine, that might be why things are different. As I have upgraded versions over time. I would appreciate any help with this, as getting the dependices for CodeQL correct is not my string suite. I can also send the full logs if that is needed as well. Thank you.

@KylerKatz KylerKatz added the question Further information is requested label May 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant