{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-13T23:31:32.997966Z","repo":{"ref":{"host":"github.com","owner":"xoreaxeaxeax","name":"rosenbridge"},"default_branch":"master","clone_url":"https://github.com/xoreaxeaxeax/rosenbridge.git","html_url":"https://github.com/xoreaxeaxeax/rosenbridge","description":"Hardware backdoors in x86 CPUs","stars":2625,"forks":229,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":561,"primary_language":"C","license_spdx":"MIT","created_at":"2018-08-09T03:56:17Z","pushed_at":"2018-10-12T09:22:06Z","security_policy_url":null,"distribution":{"owner_created_at":"2015-06-16T01:47:36Z","owner_type":"User","release_assets":[]}},"commit_sha":"d90069da69de99af4528d537655de6dd7b594119","profile":{"lines_by_language":{"C":3370,"Python":2078,"Shell":97},"files_by_category":{"source":34,"other":11,"docs":2,"binary":1,"test":1},"source_lines":5487,"test_lines":58},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.4,"coverage":1.0,"label":"none-detected","breakdown":{"attributed_share":0.0,"suspected_share":0.0,"estimated_share":0.0,"ai_artifacts":0.0,"flagged_work_units":0.0,"flagged_releases":null},"summary":"No AI attribution or AI-consistent velocity signals detected."},"quality":{"score":36.0,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":46.4,"duplication":41.5,"lint":4.8,"testing":30.5,"docs":65.0,"type_safety":40.0,"process":null},"summary":"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."},"security":{"score":77.5,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":88.0,"dependencies":null,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: 2 high-severity SAST findings. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no registry dependencies declared"},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":1.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":5545.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2018-08":{"loc":5545,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":0.0,"workflow_agents":0.0,"tools_configured":0.0},"findings":[],"evidence":[],"data":{"artifacts":[],"workflows":[],"tools":[]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":0.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":0.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":0.0,"median_loc_per_hour":0.0,"pr_timed_units":0.0,"excluded_import_loc":5545.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["d90069da69de99af4528d537655de6dd7b594119"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":5487.0,"index":0.0,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":0.0,"per_kloc:emoji_in_code":0.0,"files:emoji_in_code":0.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":4.0,"findings_high":2.0,"findings_medium":2.0,"findings_low":0.0,"weighted_findings":2.0,"scanned_lines":5487.0,"parse_errors":4.0},"findings":[{"rule_id":"opengrep/python.lang.security.audit.dangerous-system-call-audit","severity":"high","message":"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]","path":"fuzz/manager/fuzz_deis.py","line":39,"fingerprint":"python.lang.security.audit.dangerous-system-call-audit:fuzz/manager/fuzz_deis.py:39"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-system-call-audit","severity":"high","message":"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]","path":"fuzz/manager/fuzz_exit.py","line":86,"fingerprint":"python.lang.security.audit.dangerous-system-call-audit:fuzz/manager/fuzz_exit.py:86"},{"rule_id":"opengrep/c.lang.security.insecure-use-scanf-fn","severity":"medium","message":"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]","path":"fuzz/exit/fuzz_exit.c","line":43,"fingerprint":"c.lang.security.insecure-use-scanf-fn:fuzz/exit/fuzz_exit.c:43"},{"rule_id":"opengrep/python.lang.security.audit.hardcoded-password-default-argument","severity":"medium","message":"Hardcoded password is used as a default argument to '__init__'. This could be dangerous if a real password is not supplied. [confidence low]","path":"fuzz/manager/device/device.py","line":7,"fingerprint":"python.lang.security.audit.hardcoded-password-default-argument:fuzz/manager/device/device.py:7"}],"evidence":[],"data":{"rulesets":["c","python","bash"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.0,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":150.0,"function_nloc":2364.0,"mean_ccn":3.14,"p90_ccn":6.0,"complex_functions":3.0,"long_functions":3.0,"many_param_functions":2.0,"risky_nloc_share":0.2559},"findings":[],"evidence":[{"kind":"complex-function","description":"privreg_ioctl in kern/privregs/privregs.c: complexity 72, 191 lines","ref":"kern/privregs/privregs.c","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/kern/privregs/privregs.c#L74","weight":1.0},{"kind":"complex-function","description":"states_equal in fuzz/deis/fuzz_deis.c: complexity 29, 34 lines","ref":"fuzz/deis/fuzz_deis.c","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/deis/fuzz_deis.c#L609","weight":0.48333333333333334},{"kind":"complex-function","description":"task in fuzz/manager/fuzz_deis.py: complexity 17, 73 lines","ref":"fuzz/manager/fuzz_deis.py","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/manager/fuzz_deis.py#L43","weight":0.2833333333333333},{"kind":"complex-function","description":"initialize_state in fuzz/deis/fuzz_deis.c: complexity 15, 110 lines","ref":"fuzz/deis/fuzz_deis.c","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/deis/fuzz_deis.c#L221","weight":0.25},{"kind":"complex-function","description":"inject in fuzz/deis/fuzz_deis.c: complexity 6, 197 lines","ref":"fuzz/deis/fuzz_deis.c","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/deis/fuzz_deis.c#L651","weight":0.1}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":4150.0,"duplicated_lines":608.0,"duplicated_share":0.1465,"files":34.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: asm/deis_asm.py:76 and asm/deis_asm.py:492","ref":"asm/deis_asm.py","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/asm/deis_asm.py#L76","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: fuzz/deis/fuzz_deis.c:77 and fuzz/wrap/fuzz_wrapper.c:69","ref":"fuzz/deis/fuzz_deis.c","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/deis/fuzz_deis.c#L77","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: fuzz/deis/fuzz_deis.c:693 and fuzz/deis/fuzz_deis.c:842","ref":"fuzz/deis/fuzz_deis.c","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/deis/fuzz_deis.c#L693","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: fuzz/manager/fuzz_deis.py:37 and fuzz/manager/fuzz_exit.py:83","ref":"fuzz/manager/fuzz_deis.py","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/manager/fuzz_deis.py#L37","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: fuzz/manager/generator.py:33 and fuzz/manager/generator.py:43","ref":"fuzz/manager/generator.py","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/manager/generator.py#L33","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: fuzz/manager/power/relay_ftdi.py:44 and fuzz/manager/power/relay_serial.py:55","ref":"fuzz/manager/power/relay_ftdi.py","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/manager/power/relay_ftdi.py#L44","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: fuzz/manager/repeat_fuzz_deis.sh:2 and fuzz/manager/repeat_fuzz_deis.sh:3","ref":"fuzz/manager/repeat_fuzz_deis.sh","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/manager/repeat_fuzz_deis.sh#L2","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: fuzz/wrap/fuzz_wrapper.c:368 and fuzz/wrap/fuzz_wrapper.c:381","ref":"fuzz/wrap/fuzz_wrapper.c","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/fuzz/wrap/fuzz_wrapper.c#L368","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: kern/deis_kernel.c:90 and kern/privregs/privregs.c:334","ref":"kern/deis_kernel.c","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/kern/deis_kernel.c#L90","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lock/lock.c:8 and lock/unlock.c:8","ref":"lock/lock.c","url":"https://github.com/xoreaxeaxeax/rosenbridge/blob/d90069da69de99af4528d537655de6dd7b594119/lock/lock.c#L8","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":33.0,"weighted_findings":66.5,"scanned_lines":5487.0,"category:best-practice":23.0,"category:correctness":9.0,"category:maintainability":1.0},"findings":[{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_deis.py","line":53,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_deis.py:53"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_deis.py","line":77,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_deis.py:77"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_deis.py","line":96,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_deis.py:96"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_deis.py","line":119,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_deis.py:119"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_deis.py","line":124,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_deis.py:124"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_deis.py","line":139,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_deis.py:139"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_deis.py","line":157,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_deis.py:157"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_deis.py","line":175,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_deis.py:175"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_exit.py","line":98,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_exit.py:98"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/fuzz_exit.py","line":172,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/fuzz_exit.py:172"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/power/power.py","line":17,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/power/power.py:17"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/power/power.py","line":19,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/power/power.py:19"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/power/power.py","line":26,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/power/power.py:26"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/power/power.py","line":28,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/power/power.py:28"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/power/power.py","line":35,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/power/power.py:35"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/power/relay_ftdi.py","line":68,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/power/relay_ftdi.py:68"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/power/relay_ftdi.py","line":70,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/power/relay_ftdi.py:70"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/power/relay_serial.py","line":92,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/power/relay_serial.py:92"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"fuzz/manager/power/relay_serial.py","line":94,"fingerprint":"python.lang.best-practice.arbitrary-sleep:fuzz/manager/power/relay_serial.py:94"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"asm/deis_asm.py","line":532,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:asm/deis_asm.py:532"},{"rule_id":"opengrep/python.lang.best-practice.pass-body-fn","severity":"medium","message":"`pass` is the body of function initialize_power. Consider removing this or raise NotImplementedError() if this is a TODO","path":"fuzz/manager/power/power.py","line":9,"fingerprint":"python.lang.best-practice.pass-body-fn:fuzz/manager/power/power.py:9"},{"rule_id":"opengrep/python.lang.correctness.use-sys-exit","severity":"medium","message":"Detected use of `exit`. Use `sys.exit` over the python shell `exit` built-in. `exit` is a helper for the interactive shell and may not be available on all Python implementations.","path":"fuzz/manager/power/relay_serial.py","line":46,"fingerprint":"python.lang.correctness.use-sys-exit:fuzz/manager/power/relay_serial.py:46"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"fuzz/manager/watch_sessions.py","line":11,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:fuzz/manager/watch_sessions.py:11"},{"rule_id":"opengrep/python.lang.correctness.use-sys-exit","severity":"medium","message":"Detected use of `exit`. Use `sys.exit` over the python shell `exit` built-in. `exit` is a helper for the interactive shell and may not be available on all Python implementations.","path":"proc/extract.py","line":66,"fingerprint":"python.lang.correctness.use-sys-exit:proc/extract.py:66"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"proc/extract.py","line":68,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:proc/extract.py:68"},{"rule_id":"opengrep/python.lang.correctness.use-sys-exit","severity":"medium","message":"Detected use of `exit`. Use `sys.exit` over the python shell `exit` built-in. `exit` is a helper for the interactive shell and may not be available on all Python implementations.","path":"proc/extract.py","line":158,"fingerprint":"python.lang.correctness.use-sys-exit:proc/extract.py:158"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"proc/extract.py","line":761,"fingerprint":"python.lang.maintainability.return-not-in-function:proc/extract.py:761"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"fuzz/deis/fuzz_deis.sh","line":10,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:fuzz/deis/fuzz_deis.sh:10"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"fuzz/deis/fuzz_deis.sh","line":12,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:fuzz/deis/fuzz_deis.sh:12"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"fuzz/deis/fuzz_deis.sh","line":14,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:fuzz/deis/fuzz_deis.sh:14"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"fuzz/deis/fuzz_deis.sh","line":18,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:fuzz/deis/fuzz_deis.sh:18"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"fuzz/exit/fuzz_exit.sh","line":13,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:fuzz/exit/fuzz_exit.sh:13"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"fuzz/exit/fuzz_exit.sh","line":17,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:fuzz/exit/fuzz_exit.sh:17"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.0211,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":58.0,"source_lines":5487.0,"test_ratio":0.0106,"ci_files":0.0,"cochange_share":1.0,"cochange_commits":1.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":136.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"LICENSE","ref":"LICENSE","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.0,"check:low_escape_density":1.0,"escapes":0.0,"escapes_per_kloc":0.0},"findings":[],"evidence":[],"data":{},"error":null}],"flags":[]}