xoreaxeaxeax/rosenbridge
Hardware backdoors in x86 CPUs
- Repository: https://github.com/xoreaxeaxeax/rosenbridge
- Commit:
d90069da69de99af4528d537655de6dd7b594119 - Generated: 2026-11-13T23:31:32+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | none-detected | 40% | 100% |
| Code quality | 36 | poor | 90% | 100% |
| Security | 78 | adequate | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
- Explicitly attributed share (lower bound): 0.0%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 0.0%
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2018-08 | 5,545 | 0% |
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is poor: test-to-source ratio 0.01, no CI test run detected; 26% of function code in complex or long functions; 15% duplicated lines. Weakest area: lint.
| Area | Score |
|---|---|
| Complexity (lizard) | 46 |
| Duplication | 42 |
| Code smells (Opengrep) | 5 |
| Tests and CI | 30 |
| Documentation | 65 |
| Type safety | 40 |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 150; mean complexity 3.1, 90th percentile 6; 3 complex and 3 long functions
- Duplicated lines: 14.6% of 4,150 compared
- Tests: 58 test lines for 5,487 source lines (ratio 0.01); CI test commands: none detected; 100% of recent source commits also change tests
- Docs missing or thin: contributing, changelog
Most complex functions:
- privreg_ioctl in kern/privregs/privregs.c: complexity 72, 191 lines
- states_equal in fuzz/deis/fuzz_deis.c: complexity 29, 34 lines
- task in fuzz/manager/fuzz_deis.py: complexity 17, 73 lines
- initialize_state in fuzz/deis/fuzz_deis.c: complexity 15, 110 lines
- inject in fuzz/deis/fuzz_deis.c: complexity 6, 197 lines
Security
Security posture is adequate: 2 high-severity SAST findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 88 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
- Posture checks passed: lockfiles; missing: security policy, dependency updates, signed commits
Top findings
| Severity | Finding | Location |
|---|---|---|
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
fuzz/manager/fuzz_deis.py:39 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
fuzz/manager/fuzz_exit.py:86 |
| medium | opengrep/c.lang.security.insecure-use-scanf-fn: Avoid using 'scanf()'. This function, when used improperly, does not consider buffer boundaries and can lead to buffer overflows. Use 'fgets()' instead for reading input. [confidence low] |
fuzz/exit/fuzz_exit.c:43 |
| medium | opengrep/python.lang.security.audit.hardcoded-password-default-argument: Hardcoded password is used as a default argument to 'init'. This could be dangerous if a real password is not supplied. [confidence low] |
fuzz/manager/device/device.py:7 |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Repository profile
- Source lines: 5,487; test lines: 58
| Language | Lines |
|---|---|
| C | 3,370 |
| Python | 2,078 |
| Shell | 97 |