mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
CRITICAL (7): - C1: Hardcoded Wolfram Alpha API key (revoke immediately) - C2: Q16_16 rounding diverges Lean↔Python↔C (data corruption) - C3: Receipts describe non-existent files (fabrication) - C4: '3,500+ proofs' = compilation units, not theorems - C5: NaN sentinel collision Lean↔C (silent corruption) - C6: eigensolid_convergence theorem is a tautology - C7: 74% CI failure rate HIGH (12): duplicate definitions, SQL injection, command injection, 1,029 duplicate files, 66 large files in git, AGENTS.md drift MEDIUM (23): stale docs, broken cross-refs, unhandled errors LOW (31): naming violations, misplaced files, cleanup Master synthesis: audit/MASTER_AUDIT_SYNTHESIS.md Per-dimension reports: audit/*_audit.md
16 KiB
16 KiB
Infrastructure Audit Report
Repository: https://github.com/allaunthefox/Research-Stack
Branch: main
Scope: 4-Infrastructure/, 5-Applications/, 6-Kernel-Shim/, scripts/
Audit Date: 2026-06-02
Summary
| Category | Count | Severity |
|---|---|---|
| Total scoped files | 2,725 | - |
| Secrets found | 3 | 1 CRITICAL, 1 HIGH, 1 MEDIUM |
| Security issues | 6 | 2 HIGH, 3 MEDIUM, 1 LOW |
| Dead code functions/regions | 3 | 3 LOW |
| Broken imports | 2 | 1 MEDIUM, 1 LOW |
| Path mismatches | 3 | 1 MEDIUM, 2 LOW |
| Build problems | 2 | 1 MEDIUM, 1 LOW |
| Config drift | 2 | 1 MEDIUM, 1 LOW |
CRITICAL Issues
C1. Hardcoded Wolfram Alpha API Key (SECRET)
- File:
4-Infrastructure/shim/wolfram_verify.py - Line:
APPID = "HYJE3R3R63" - Severity: CRITICAL
- Description: A live Wolfram Alpha API key is hardcoded in plaintext and committed to version control. This key is used to make API calls to
api.wolframalpha.com. Anyone with repository access can extract and abuse this key, incurring API charges and potentially violating terms of service. - Evidence:
APPID = "HYJE3R3R63" # ... url = f"http://api.wolframalpha.com/v2/query?appid={APPID}&input=..." - Remediation:
- Immediately revoke the exposed API key at Wolfram Alpha developer portal
- Replace with:
APPID = os.environ.get("WOLFRAM_APPID", "") - Add
WOLFRAM_APPIDto.gitignoreand environment setup docs - Add secret scanning to CI to prevent future commits
- Rotate any other keys that may have been exposed
HIGH Severity Issues
H1. Remote SSH Command Injection via shell=True
- File:
4-Infrastructure/shim/verify_all_shims.py - Lines:
subprocess.run(cmd, shell=True, ...)(multiple instances) - Severity: HIGH
- Description: The verification script constructs SSH commands via string concatenation and executes them with
shell=True. While the current inputs appear hardcoded, the pattern is dangerous. Therun_remote()function builds:ssh {user}@{ip} "{cmd}"where cmd comes from the SHIMS list but could be tampered with. - Evidence:
def run_remote(cmd): ssh_cmd = f"ssh {CUPFOX_USER}@{CUPFOX_IP} \"{cmd}\"" res = subprocess.run(ssh_cmd, shell=True, capture_output=True, text=True) - Remediation:
- Use
paramikoorasyncsshlibrary for SSH connections - If subprocess is required, use
shell=Falsewith list args - Validate all command components against an allowlist
- Use
H2. Hardcoded Remote Infrastructure Credentials
- File:
4-Infrastructure/shim/verify_all_shims.py - Lines:
CUPFOX_IP = "46.232.249.226",CUPFOX_USER = "root" - Severity: HIGH
- Description: Production infrastructure IP address and privileged username (root) are hardcoded. Combined with SSH key-based authentication (not visible in file but implied by SSH commands), this exposes production compute node details.
- Evidence:
CUPFOX_IP = "46.232.249.226" CUPFOX_USER = "root" - Remediation:
- Move to environment variables:
CUPFOX_IP,CUPFOX_USER - Use non-privileged user for remote execution
- Document SSH key management in secure vault
- Move to environment variables:
MEDIUM Severity Issues
M1. SQL Injection Pattern in Eigensolid Data Shim
- File:
4-Infrastructure/shim/ingest_eigensolid_data.py - Function:
generate_crossing_weights_insert(),generate_eigensolid_snapshot_insert(),generate_braid_strand_insert() - Severity: MEDIUM
- Description: SQL generator functions use f-string interpolation to construct INSERT statements. While the current
uuid.uuid4()values are safe, the pattern is dangerous if extended to user-provided data. Note: theinsert_eigensolid_data()function correctly uses parameterized queries - there is an inconsistency. - Evidence:
def generate_crossing_weights_insert(...): return f"INSERT INTO ene.crossing_weights ... VALUES ('{cw_id}', '{recipe_id}', ...)" - Remediation:
- Remove unsafe SQL generator functions or use parameter placeholders (
%s) - Ensure all SQL generation uses parameterized queries consistently
- Remove unsafe SQL generator functions or use parameter placeholders (
M2. Broken Import Path Manipulation
- File:
4-Infrastructure/shim/qaoa_adapter.py - Lines:
sys.path.insert(0, ...),from q16 import ... - Severity: MEDIUM
- Description: Module uses
sys.path.insert()to findq16.pyandbraid_search.py. If these files are not present in the expected relative locations, the import will fail at runtime. Only partial graceful fallback exists. - Evidence:
_sys.path.insert(0, str(Path(__file__).resolve().parent.parent / "lib")) _sys.path.insert(0, str(Path(__file__).resolve().parent)) from q16 import Q16_SCALE, from_q16, to_q16 from braid_search import _q16_signed - Remediation:
- Package modules properly with
__init__.py - Add try/except ImportError with fallback implementations
- Package modules properly with
M3. Kernel Module const-Cast Undefined Behavior
- File:
6-Kernel-Shim/pist_compress.c - Function:
pist_init_galois_table() - Severity: MEDIUM
- Description: The function casts away
constfromgalois_mul_tableto write to it at runtime:(u8 *)galois_mul_table. This is undefined behavior in C and potentially a security concern in kernel code. - Evidence:
static const u8 galois_mul_table[256] = { ... }; static void pist_init_galois_table(void) { u8 *tbl = (u8 *)galois_mul_table; // const cast away for (...) tbl[i] = p; } - Remediation:
- Remove
constqualifier fromgalois_mul_table - Or use a non-const working copy
- Remove
M4. Config Drift - Extracted Components Still Referenced
- File:
4-Infrastructure/AGENTS.md - Severity: MEDIUM
- Description: AGENTS.md states that
kubernetes/,k3s-flake/,kube/,shim/ray-actors/,shim/vcn_*.py,shim/hermes/were extracted todistributed-compute-fabricrepository. However, references to these paths may still exist in code and scripts, causing confusion. - Remediation:
- Audit all remaining references to extracted components
- Update cross-references to point to new repository
- Add deprecation notices where appropriate
M5. Path Mismatch in Verification Script
- File:
4-Infrastructure/shim/verify_all_shims.py - Line:
local_path = os.path.join("4-Infrastructure/shim", shim) - Severity: MEDIUM
- Description: Uses relative path "4-Infrastructure/shim" which assumes script is run from repo root. If run from elsewhere, files won't be found.
- Remediation:
script_dir = Path(__file__).resolve().parent local_path = script_dir / shim
LOW Severity Issues
L1. Kernel Module Non-Destructive Statistics Read
- File:
6-Kernel-Shim/pist_neuromorphic.c - Function:
stats_show() - Severity: LOW
- Description: The
stats_show()function destructively readsbyte_freqby zeroing entries during the "top 10" loop. This is not thread-safe and corrupts statistics for concurrent readers. - Evidence:
st->byte_freq[max_idx] = 0; /* zero out for next iter (destructive!) */ - Remediation: Copy array locally before processing. Use
spin_lock_irqsave()to protect the read.
L2. Dead Code in Kernel Compression Module
- File:
6-Kernel-Shim/pist_compress.c - Functions:
pist_shifter_hachimoji(),pist_shifter_aegis(),pist_entropy_approx() - Severity: LOW
- Description: Three shifter functions (Hachimoji, AEGIS, Natural DNA) and the entropy approximation function are defined but never called in the compression/decompression paths. Only
pist_shifter_mirroris actually used inpist_compress_page(). - Remediation: Remove unused functions or wire them into the compression engine via the shifter chain bitmask.
L3. Dead Bit Flags in pist_compress.c
- File:
6-Kernel-Shim/pist_compress.c - Severity: LOW
- Description: Eight shifter bit flags are defined but only
PIST_SHIFT_PIST_MIRRORis checked in the compression function. - Evidence:
#define PIST_SHIFT_HACHIMOJI BIT(0) // unused #define PIST_SHIFT_AEGIS BIT(1) // unused #define PIST_SHIFT_NATURAL_DNA BIT(2) // unused #define PIST_SHIFT_PIST_MIRROR BIT(3) // used #define PIST_SHIFT_PNA BIT(4) // unused #define PIST_SHIFT_LNA BIT(5) // unused #define PIST_SHIFT_PRION BIT(6) // unused #define PIST_SHIFT_GALOIS BIT(7) // unused - Remediation: Implement multi-shifter chain or remove unused flags.
L4. Missing Output Directory Handling
- File:
5-Applications/scripts/rgflow_gpu_pipeline.py - Line:
save_results(flat, Path("out")) - Severity: LOW
- Description: Hardcoded output path "out" may not exist. While
out_dir.mkdir()is called insidesave_results(), the path is relative to cwd. - Remediation: Use configurable output path with
mkdir(parents=True, exist_ok=True).
L5. Heavy Monolithic requirements.txt
- File:
requirements.txt - Severity: LOW
- Description: Single requirements.txt includes GPU (wgpu), quantum (qiskit, cirq, perceval-quandela), distributed compute (ray), and database dependencies. Many will fail on systems without specialized hardware.
- Remediation:
requirements.txt # core only requirements-gpu.txt # wgpu, CUDA requirements-quantum.txt # qiskit, cirq, perceval requirements-db.txt # psycopg2, boto3
L6. AGENTS.md Storage Agent Description Drift
- File:
4-Infrastructure/AGENTS.md - Severity: LOW
- Description: AGENTS.md describes detailed trigger model for storage_agent.py with specific Q16_16 thresholds and receipt schema. The actual implementation may differ from documentation.
- Remediation: Add doc tests or sync documentation with code via automated extraction.
L7. Potentially Unused Cloudflare WASM Functions
- File:
4-Infrastructure/cloudflare/src/lib.rs - Functions:
reset(),derive_scalar() - Severity: LOW
- Description:
reset()andderive_scalar()are defined but may not be called from the JavaScript entry point (index.js). - Remediation: Verify usage in
index.jsor remove if confirmed unused.
Per-Component Breakdown
4-Infrastructure/ (1,420 Python files, 142 Rust files, 18 C files, 68 Shell files, 125 YAML files)
| Component | Files | Critical Issues | Warnings | Notes |
|---|---|---|---|---|
shim/*.py |
~50 | 1 (wolfram key) | 4 | Core adapter shims |
storage/ |
~10 | 0 | 1 | Storage agent subprocess calls |
cloudflare/ |
3 | 0 | 1 | WASM edge functions |
kernel/ |
2 C files | 0 | 3 | Kernel modules have dead code, const cast |
hardware/ |
~20 | 0 | 0 | FPGA/sparkle hardware bring-up |
NoDupeLabs/ |
~50 | 0 | 0 | Third-party package |
5-Applications/ (142 Rust files)
| Component | Files | Critical Issues | Warnings | Notes |
|---|---|---|---|---|
parquet_compressor/ |
~30 | 0 | 1 | Cargo.toml dependency versions |
scripts/ |
~20 | 0 | 1 | Path handling in GPU pipeline |
6-Kernel-Shim/ (2 C files mirrored from 4-Infrastructure/kernel/)
| Component | Files | Critical Issues | Warnings | Notes |
|---|---|---|---|---|
pist_compress.c |
1 | 0 | 2 | Dead code, const cast |
pist_neuromorphic.c |
1 | 0 | 1 | Destructive stats read |
Note: The C files in 6-Kernel-Shim/ appear to be mirrors of 4-Infrastructure/kernel/ files. Ensure they are kept in sync or use symlinks/submodules to avoid divergence.
Security Analysis Details
Python Security Patterns Found
| Pattern | Files | Risk Level | Notes |
|---|---|---|---|
subprocess.run(shell=True) |
verify_all_shims.py | HIGH | Remote SSH commands |
subprocess.run() |
storage_agent.py | MEDIUM | Calls to backup scripts |
| f-string SQL construction | ingest_eigensolid_data.py | MEDIUM | Generator functions |
eval() / exec() |
None found | - | Clean |
pickle.loads() |
None found | - | Clean |
input() |
None found | - | Clean |
| Hardcoded API key | wolfram_verify.py | CRITICAL | Wolfram Alpha APPID |
Rust Safety Analysis
| File | unsafe Blocks | Notes |
|---|---|---|
cloudflare/src/lib.rs |
0 | Clean WASM bindings |
parquet_compressor/src/*.rs |
TBD (not in scope of read) | Likely has GPU unsafe code |
C Kernel Safety Analysis
| File | Issue | Severity |
|---|---|---|
pist_compress.c |
const cast away | MEDIUM |
pist_compress.c |
int_sqrt() usage (kernel API) | LOW (verify availability) |
pist_neuromorphic.c |
Non-atomic stat read | LOW |
pist_neuromorphic.c |
PAGE_SIZE buffer in sysfs show | LOW (potential overflow) |
Build System Analysis
Cargo.toml (parquet_compressor)
[dependencies]
parquet = { version = "58.3", default-features = false, features = ["arrow", "zstd"] }
arrow = "58.3"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
rayon = "1.8"
clap = { version = "4.4", features = ["derive"] }
indicatif = "0.18"
byteorder = "1.5"
sysinfo = "0.30"
tokio = { version = "1.35", features = ["sync", "rt", "rt-multi-thread"] }
anyhow = "1.0"
divsufsort = "2.0"
itertools = "0.14"
flate2 = "1.0"
zstd = "0.13"
wgpu = "0.19"
bytemuck = { version = "1.14", features = ["derive"] }
pollster = "0.3"
chrono = "0.4"
glob = "0.3"
pathdiff = "0.2"
regex = "1.11"
ahash = "0.8"
dashmap = "6.2"
dirs = "5.0"
Issues:
itertools = "0.14"is very recent (June 2026); may not be stabledivsufsort = "2.0"may have build issues on Windows- No
Cargo.lockvisible in the tree (should be committed for binaries)
requirements.txt
Issues:
- Monolithic file with 20+ heavy dependencies
- GPU, quantum, and distributed compute deps all in one file
- No version pins (uses
>=which can break with major version updates) perceval-quandela>=1.2.3requires proprietary SDK
Remediation Priority Matrix
| Priority | Issue | Effort | File |
|---|---|---|---|
| P0 | Revoke and rotate Wolfram Alpha API key | 15 min | wolfram_verify.py |
| P0 | Remove hardcoded key from source | 5 min | wolfram_verify.py |
| P1 | Fix subprocess shell=True in verify_all_shims.py | 1 hour | verify_all_shims.py |
| P1 | Move SSH credentials to environment | 30 min | verify_all_shims.py |
| P2 | Fix SQL injection pattern | 30 min | ingest_eigensolid_data.py |
| P2 | Fix const cast in kernel module | 15 min | pist_compress.c |
| P2 | Add try/except for fragile imports | 30 min | qaoa_adapter.py |
| P3 | Remove dead code from kernel modules | 1 hour | pist_compress.c |
| P3 | Fix destructive stats read | 30 min | pist_neuromorphic.c |
| P3 | Split requirements.txt | 30 min | requirements.txt |
| P4 | Fix relative path assumptions | 30 min | Multiple files |
| P4 | Sync AGENTS.md with code | 2 hours | AGENTS.md |
Recommendations
-
Immediate Actions (Today):
- Revoke the exposed Wolfram Alpha API key
- Remove hardcoded IP/username from verify_all_shims.py
- Run
git filter-repoor similar to remove secrets from git history
-
Short-term (This Week):
- Fix all subprocess shell=True usages
- Fix SQL injection patterns
- Fix kernel module const cast
- Add secret scanning to CI (e.g.,
truffleHogorgit-secrets)
-
Medium-term (This Month):
- Remove dead code from kernel modules
- Split requirements.txt into feature-specific files
- Add proper error handling for missing files/paths
- Sync documentation with actual code
-
Long-term:
- Add automated security scanning to CI pipeline
- Implement proper secret management (HashiCorp Vault, AWS Secrets Manager)
- Add unit tests for kernel module sysfs interfaces
- Create integration tests for shim verification pipeline