fix: bound journal credential scan

This commit is contained in:
User
2026-08-21 07:09:11 +02:00
parent 6499d24892
commit 6fb48866b8
3 changed files with 41 additions and 11 deletions
+18 -6
View File
@@ -276,21 +276,33 @@ emette solo PASS/FAIL.
since=$(date -u -d '15 minutes ago' +%Y-%m-%dT%H:%M:%SZ)
if sudo python3 -c '
import pathlib, subprocess, sys
max_journal_bytes = 1_048_576
max_journal_lines = 10_000
try:
actual_keys = {pathlib.Path(path).read_bytes() for path in sys.argv[2:]}
result = subprocess.run(
process = subprocess.Popen(
["journalctl", "-u", "dwh-auth", "--since", sys.argv[1], "--no-pager", "--output=cat"],
check=False,
stdout=subprocess.PIPE,
stderr=subprocess.DEVNULL,
)
except OSError:
raise SystemExit(2)
if result.returncode != 0:
bytes_seen = 0
try:
for line_number, line in enumerate(process.stdout, 1):
if line_number > max_journal_lines or bytes_seen + len(line) > max_journal_bytes:
process.kill()
process.wait()
raise SystemExit(2)
bytes_seen += len(line)
if b"thtdwh_v1" in line or b"secret_sha256" in line or any(key in line for key in actual_keys):
raise SystemExit(1)
finally:
if process.poll() is None:
process.kill()
process.wait()
if process.returncode != 0:
raise SystemExit(2)
for line in result.stdout.splitlines(keepends=True):
if b"thtdwh_v1" in line or b"secret_sha256" in line or any(key in line for key in actual_keys):
raise SystemExit(1)
' "$since" "$v1_key_file" "$legacy_key_file"; then
printf 'journal_actual_key_scan=PASS\n'
else