Skills for threat modeling, scanning, triage, patching, plus an autonomous scanning harness you can /customize
This report presents the forensic synthetic code analysis of anthropics/defending-code-reference-harness, a Python project with 7,378 GitHub stars. SynthScan v2.0 examined 24,645 lines of code across 138 source files, recording 512 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 31.0 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 512 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_dnrcanary.py | 115 | def test_vuln_pipeline_refuses_dnr_target(): | CODE |
| LOW⚡ | tests/test_dnrcanary.py | 125 | def test_grade_passes_complete_submission(): | CODE |
| LOW⚡ | tests/test_dnrcanary.py | 133 | def test_grade_fails_when_idor_missed(): | CODE |
| LOW⚡ | tests/test_dnrcanary.py | 625 | def test_generate_logs_aborts_when_non_http_service_owns_port(tmp_path): | CODE |
| LOW⚡ | tests/test_dnrcanary.py | 631 | def test_grade_cli_missing_ground_truth_exits_couldnt_grade(tmp_path): | CODE |
| LOW⚡ | tests/test_dnrcanary.py | 641 | def test_committed_alerts_match_generator(): | CODE |
| LOW⚡ | tests/test_dnrcanary.py | 651 | def test_ground_truth_matches_source_constants(): | CODE |
| LOW | tests/test_dnrcanary.py | 144 | def test_grade_idor_volume_requires_quantified_count(): | CODE |
| LOW | tests/test_dnrcanary.py | 169 | def test_grade_fails_on_login_injection_claim(): | CODE |
| LOW | tests/test_dnrcanary.py | 188 | def test_grade_fails_on_login_claim_with_top_level_route(): | CODE |
| LOW | tests/test_dnrcanary.py | 208 | def test_grade_poc_respects_honest_negative(): | CODE |
| LOW | tests/test_dnrcanary.py | 224 | def test_grade_fails_on_login_claim_in_top_level_fields(): | CODE |
| LOW | tests/test_dnrcanary.py | 243 | def test_grade_passes_three_incident_split(): | CODE |
| LOW | tests/test_dnrcanary.py | 267 | def test_grade_passes_ato_title_mentioning_sqli(): | CODE |
| LOW | tests/test_dnrcanary.py | 292 | def test_grade_idor_scope_not_satisfied_by_ownership_mention(): | CODE |
| LOW | tests/test_dnrcanary.py | 310 | def test_grade_idor_source_loc_accepts_mechanism_phrasings(): | CODE |
| LOW | tests/test_dnrcanary.py | 332 | def test_grade_idor_scope_not_satisfied_by_ip_address_prose(): | CODE |
| LOW | tests/test_dnrcanary.py | 348 | def test_grade_passes_ato_detail_mentioning_sqli(): | CODE |
| LOW | tests/test_dnrcanary.py | 381 | def test_grade_fails_cleanly_on_non_list_fields(): | CODE |
| LOW | tests/test_dnrcanary.py | 393 | def test_grade_herring_requires_burst_reference(): | CODE |
| LOW | tests/test_dnrcanary.py | 423 | def test_grade_fails_cleanly_on_non_dict_submission(): | CODE |
| LOW | tests/test_dnrcanary.py | 435 | def test_grade_passes_granular_sqli_split(): | CODE |
| LOW | tests/test_dnrcanary.py | 458 | def test_grade_tolerates_string_entries(): | CODE |
| LOW | tests/test_dnrcanary.py | 472 | def test_grade_requires_negative_finding_for_scanner(): | CODE |
| LOW | tests/test_dnrcanary.py | 482 | def test_grade_rejects_herring_filed_as_suspected_incident(): | CODE |
| LOW | tests/test_dnrcanary.py | 508 | def test_grade_cli_reports_invalid_json_cleanly(tmp_path): | CODE |
| LOW | tests/test_dnrcanary.py | 540 | def test_grade_cli_empty_ground_truth_exits_couldnt_grade(tmp_path): | CODE |
| LOW | tests/test_dnrcanary.py | 580 | def _assert_generate_logs_aborts(tmp_path, payload: bytes) -> None: | CODE |
| LOW | tests/test_dnrcanary.py | 614 | def test_generate_logs_aborts_when_http_server_owns_port(tmp_path): | CODE |
| LOW | tests/test_dnrcanary.py | 666 | def test_session_steps_clamp_to_window(): | CODE |
| LOW | tests/test_dnrcanary.py | 678 | def test_incidents_json_example_in_readme_is_valid_json(): | CODE |
| LOW | tests/test_dedup.py | 39 | def test_signature_skips_interceptor(): | STRING |
| LOW⚡ | tests/test_dedup.py | 50 | def test_signature_no_frame_fallback(): | STRING |
| LOW⚡ | tests/test_dedup.py | 55 | def test_signature_missing_fields(): | STRING |
| LOW | tests/test_dedup.py | 105 | def test_dedup_groups_duplicates(tmp_path): | CODE |
| LOW | tests/test_dedup.py | 117 | def test_dedup_includes_rejected(tmp_path): | CODE |
| LOW | tests/test_dedup.py | 126 | def test_dedup_parses_operation(tmp_path): | CODE |
| LOW⚡ | tests/test_dedup.py | 139 | def test_dedup_signature_prefers_parsed_type(tmp_path): | CODE |
| LOW⚡ | tests/test_dedup.py | 149 | def test_dedup_skips_null_crash(tmp_path): | CODE |
| LOW⚡ | tests/test_dedup.py | 158 | def test_dedup_walks_nested_batches(tmp_path): | CODE |
| LOW | tests/test_dedup.py | 172 | def test_dedup_skips_malformed_json(tmp_path): | CODE |
| LOW | tests/test_dedup.py | 190 | def test_format_report_sorted_by_count(tmp_path): | CODE |
| LOW⚡ | tests/test_dedup.py | 205 | def test_format_report_shows_operation(tmp_path): | CODE |
| LOW⚡ | tests/test_dedup.py | 212 | def test_format_report_shows_relative_paths(tmp_path): | CODE |
| LOW⚡ | tests/test_dedup.py | 220 | def test_format_report_shows_status(tmp_path): | CODE |
| LOW | tests/test_salvage.py | 79 | def test_vp_error_without_submission_stays_agent_failed(tmp_path, monkeypatch): | CODE |
| LOW | tests/test_salvage.py | 87 | def test_vp_error_after_submission_salvages_crash(tmp_path, monkeypatch): | CODE |
| LOW | tests/test_salvage.py | 98 | def test_vp_clean_run_records_no_error(tmp_path, monkeypatch): | CODE |
| LOW | tests/test_salvage.py | 157 | def test_dnr_error_without_submission_stays_error(tmp_path, monkeypatch, capsys): | CODE |
| LOW | tests/test_salvage.py | 173 | def test_dnr_error_after_submission_salvages_and_grades(tmp_path, monkeypatch): | CODE |
| LOW | tests/test_salvage.py | 184 | def test_dnr_clean_run_records_no_hunt_error(tmp_path, monkeypatch): | CODE |
| LOW⚡ | tests/test_judge.py | 20 | def test_parse_judge_dup_skip(): | CODE |
| LOW⚡ | tests/test_judge.py | 26 | def test_parse_judge_dup_better(): | CODE |
| LOW⚡ | tests/test_judge.py | 32 | def test_parse_judge_dup_without_bug_id_falls_open(): | CODE |
| LOW⚡ | tests/test_judge.py | 39 | def test_parse_judge_unparseable_falls_open(): | CODE |
| LOW⚡ | tests/test_judge.py | 45 | def test_parse_judge_case_insensitive(): | CODE |
| LOW⚡ | tests/test_judge.py | 59 | def test_judge_prompt_empty_manifest(): | CODE |
| LOW | tests/test_judge.py | 73 | def test_judge_prompt_with_manifest(): | CODE |
| LOW | tests/test_judge.py | 93 | def test_compare_prompt_has_both(): | CODE |
| LOW | tests/test_judge.py | 113 | def test_manifest_append_and_read(tmp_path): | CODE |
| 258 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | targets/canary/entry.c | 17 | // ─── Parser A: heap-buffer-overflow ────────────────────────────────────────── | COMMENT |
| MEDIUM | targets/canary/entry.c | 33 | // ─── Parser B: stack-buffer-overflow ───────────────────────────────────────── | COMMENT |
| MEDIUM | targets/canary/entry.c | 45 | // ─── Parser C: heap-use-after-free ─────────────────────────────────────────── | COMMENT |
| MEDIUM | targets/canary/entry.c | 65 | // ─── Dispatch ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_dedup.py | 13 | # ── _signature ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_dedup.py | 60 | # ── dedup (results tree walk) ──────────────────────────────────────────────── | STRING |
| MEDIUM | tests/test_dedup.py | 188 | # ── format_report ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_salvage.py | 44 | # ── vuln-pipeline (harness.cli._run_once) ───────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_salvage.py | 105 | # ── dnr-pipeline (dnr_harness.cli._run_once) ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_judge.py | 11 | # ── judge output parsing ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_judge.py | 50 | # ── judge prompt building ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_judge.py | 91 | # ── compare prompt building ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_judge.py | 105 | # ── manifest round-trip ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_agent.py | 164 | # ── _container_dead_reason probe ───────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_patch_grade.py | 19 | # ── fixtures ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_patch_grade.py | 49 | # ── PatchVerdict semantics ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_patch_grade.py | 130 | # ── T1 oracle ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_patch_grade.py | 149 | # ── ladder short-circuit (mocked docker) ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_auth.py | 344 | # ── provider ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_auth.py | 480 | # ── warn_bedrock_model ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_auth.py | 537 | # ── refuse_denied_auto_mode_model ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_auth.py | 622 | # ── required_egress_hosts ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_auth.py | 647 | # ── check_egress_satisfied ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_auth.py | 51 | # ── resolve_auth_env: first party ─────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_auth.py | 86 | # ── resolve_auth_env: Bedrock ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_auth.py | 414 | # ── Vertex (stub) ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_auth.py | 437 | # ── usage marker ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_xml_parse.py | 11 | # ── parse_xml_tag ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_xml_parse.py | 50 | # ── _blocks_to_text ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_xml_parse.py | 70 | # ── find_tagged_message: THE BUGFIX ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_report.py | 14 | # ── grader tag parsing ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_report.py | 76 | # ── crash_file_from_frame ──────────────────────────────────────────────────── | STRING |
| MEDIUM⚡ | tests/test_report.py | 85 | # ── prompt building ────────────────────────────────────────────────────────── | STRING |
| MEDIUM⚡ | tests/test_report.py | 130 | # ── representative picker ──────────────────────────────────────────────────── | STRING |
| MEDIUM | tests/test_found_bugs.py | 12 | # ── asan.top_frame / project_frames ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_found_bugs.py | 156 | # ── jsonl append/read round-trip (raw ASAN excerpt format) ─────────────────── | STRING |
| MEDIUM⚡ | tests/test_found_bugs.py | 230 | # ── concurrent-agents prompt section ───────────────────────────────────────── | STRING |
| MEDIUM⚡ | tests/test_skill_checkpoint.py | 346 | # ── input hardening ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_skill_checkpoint.py | 36 | # ── happy path ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_skill_checkpoint.py | 104 | # ── rundir ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_skill_checkpoint.py | 368 | # ── path confinement ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_focus.py | 8 | # ── build_find_prompt conditional sections ─────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_focus.py | 89 | # ── _assigned_focus round-robin ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_egress_proxy.py | 87 | # ── CONNECT relay ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_egress_proxy.py | 208 | # ── Tunnel idle timeout ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_asan.py | 11 | # ── crash_reason ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_asan.py | 101 | # ── asan_excerpt ───────────────────────────────────────────────────────────── | STRING |
| MEDIUM | tests/test_asan.py | 132 | # ── result.json integration ────────────────────────────────────────────────── | STRING |
| MEDIUM⚡ | tests/test_untrusted.py | 35 | # ── helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_untrusted.py | 51 | # ── patch prompt ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_untrusted.py | 86 | # ── report prompt ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_untrusted.py | 103 | # ── judge prompt ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_checkpoint.py | 19 | # ── run --resume ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_checkpoint.py | 57 | # ── --resume --stream: judge_log idempotence key ───────────────────────────── | COMMENT |
| MEDIUM | tests/test_checkpoint.py | 84 | # ── --resume layout guard ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_checkpoint.py | 115 | # ── report (skip-on-exists) ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | harness/patch_grade.py | 98 | # ── T0: apply + build ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | harness/patch_grade.py | 146 | # ── T1: PoC stops ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | harness/patch_grade.py | 168 | # ── T2: regression suite ───────────────────────────────────────────── | COMMENT |
| MEDIUM | harness/patch_grade.py | 186 | # ── re-attack ──────────────────────────────────────────────────────── | COMMENT |
| 30 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | targets/dnrcanary/ground_truth.yaml | 9 | # the grader scores against. The autonomous harness must never mount this | COMMENT |
| MEDIUM | tests/test_salvage.py | 44 | # ── vuln-pipeline (harness.cli._run_once) ───────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_salvage.py | 140 | # dnr_cli.sandbox / dnr_cli.docker_ops are the shared harness modules | COMMENT |
| MEDIUM | tests/test_dnr_harness.py | 236 | # 1 — harness.cli's convention reserves 1 for usage/config/auth errors | STRING |
| MEDIUM | tests/test_dnr_harness.py | 281 | # usage/config errors before any agent ran exit 1, per harness.cli's | STRING |
| MEDIUM | tests/test_dnr_harness.py | 368 | # harness read other container files, e.g. the copied auth profile | STRING |
| MEDIUM | tests/test_skill_checkpoint.py | 275 | # skill run must NOT adopt it (which would overwrite the harness output) — | COMMENT |
| MEDIUM⚡ | tests/test_skill_checkpoint.py | 288 | assert out != str(foreign) # minted fresh, did not adopt the harness dir | CODE |
| MEDIUM | .claude/skills/_lib/checkpoint.py | 56 | # Run dirs minted by rundir: harness timestamp + optional same-second suffix. | COMMENT |
| MEDIUM | dnr_harness/cli.py | 430 | # harness.agent_image.build captures output; without this the stderr | COMMENT |
| MEDIUM | harness/prompts/report_prompt.py | 64 | ### 2. `<reachability>` — real attack surface or harness artifact? | COMMENT |
| MEDIUM | scripts/egress_proxy.py | 57 | # Keep in sync with harness/auth.py:_host_allowed | COMMENT |
| MEDIUM⚡ | scripts/setup_sandbox.sh | 93 | # the default from harness.auth so Bedrock/Vertex get the right host without a | COMMENT |
| MEDIUM⚡ | scripts/setup_sandbox.sh | 94 | # manual override. Needs the venv (harness package) — ensure it now. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | targets/dnrcanary/grade.py | 47 | CODE | |
| LOW | targets/dnrcanary/generate_logs.py | 26 | CODE | |
| LOW | targets/dnrcanary/app/seed.py | 10 | CODE | |
| LOW | targets/dnrcanary/app/app.py | 13 | CODE | |
| LOW | tests/test_dnrcanary.py | 10 | CODE | |
| LOW | tests/test_agent.py | 9 | CODE | |
| LOW | tests/test_patch_grade.py | 9 | CODE | |
| LOW | tests/test_dnr_harness.py | 5 | CODE | |
| LOW | tests/test_patch_grade_e2e.py | 14 | CODE | |
| LOW | tests/test_patch.py | 5 | CODE | |
| LOW | tests/test_sandbox.py | 9 | CODE | |
| LOW | tests/test_untrusted.py | 5 | CODE | |
| LOW | tests/test_agent_sandbox.py | 12 | CODE | |
| LOW | .claude/skills/_lib/checkpoint.py | 43 | CODE | |
| LOW | dnr_harness/config.py | 11 | CODE | |
| LOW | dnr_harness/agent_image.py | 12 | CODE | |
| LOW | dnr_harness/system_prompt.py | 12 | CODE | |
| LOW | dnr_harness/prompts.py | 13 | CODE | |
| LOW | dnr_harness/cli.py | 23 | CODE | |
| LOW | harness/patch.py | 11 | CODE | |
| LOW | harness/config.py | 12 | CODE | |
| LOW | harness/agent_image.py | 12 | CODE | |
| LOW | harness/docker_ops.py | 9 | CODE | |
| LOW | harness/patch_grade.py | 17 | CODE | |
| LOW | harness/asan.py | 7 | CODE | |
| LOW | harness/sandbox.py | 13 | CODE | |
| LOW | harness/cli.py | 30 | CODE | |
| LOW | harness/dedup.py | 16 | CODE | |
| LOW | harness/judge.py | 9 | CODE | |
| LOW | harness/agent.py | 22 | CODE | |
| LOW | harness/find.py | 7 | CODE | |
| LOW | harness/artifacts.py | 7 | CODE | |
| LOW | harness/novelty.py | 13 | CODE | |
| LOW | harness/report.py | 13 | CODE | |
| LOW | harness/grade.py | 11 | CODE | |
| LOW | harness/recon.py | 11 | CODE | |
| LOW | harness/prompts/untrusted.py | 12 | CODE | |
| LOW | harness/prompts/system_prompt.py | 16 | CODE | |
| LOW | harness/prompts/patch_prompt.py | 8 | CODE | |
| LOW | scripts/egress_proxy.py | 15 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_dedup.py | 31 | ASSERTION_OUTPUT = "entry: /work/decoder.h:4521: decode_chunk: Assertion `n >= 1 && n <= 4' failed.\n" | STRING |
| HIGH⚡ | tests/test_dnr_harness.py | 429 | # `grader:` with no value parses as YAML null; the jail must answer | STRING |
| HIGH | tests/test_asan.py | 44 | entry: /work/img.h:1761: convert_format: Assertion `n >= 1 && n <= 4' failed. | CODE |
| HIGH | harness/patch.py | 89 | f"({ignore}git init -q && git add -A && " | CODE |
| HIGH | harness/prompts/find_prompt.py | 68 | - SEGV at a non-null, attacker-influenced address (not 0x0 or 0x8) | CODE |
| HIGH | harness/prompts/find_prompt.py | 190 | - SEGV at a non-null, attacker-influenced address | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | dnr_harness/cli.py | 280 | except Exception as e: | CODE |
| LOW | dnr_harness/cli.py | 362 | except Exception as e: | CODE |
| MEDIUM | harness/cli.py | 1033 | def _cmd_recon(args) -> int: | CODE |
| LOW⚡ | harness/cli.py | 667 | except Exception as e: | CODE |
| LOW | harness/cli.py | 255 | except Exception as e: | CODE |
| LOW | harness/cli.py | 335 | except Exception as e: | CODE |
| LOW | harness/cli.py | 374 | except Exception: | CODE |
| LOW | harness/cli.py | 517 | except Exception as e: | CODE |
| LOW | harness/cli.py | 757 | except Exception: | CODE |
| LOW | harness/cli.py | 794 | except Exception as e: | CODE |
| LOW | harness/cli.py | 967 | except Exception as e: | CODE |
| LOW | harness/cli.py | 1037 | except Exception as e: | CODE |
| LOW | harness/cli.py | 1057 | except Exception as e: | CODE |
| LOW | harness/cli.py | 1163 | except Exception as e: | CODE |
| LOW | harness/cli.py | 1257 | except Exception as e: | CODE |
| LOW | harness/cli.py | 1386 | except Exception as e: | CODE |
| LOW | harness/agent.py | 402 | except Exception as e: | CODE |
| LOW | scripts/setup_sandbox.sh | 216 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | targets/htslib/entry.c | 1 | // Copyright 2026 Anthropic PBC | COMMENT |
| LOW | targets/canary/entry.c | 1 | // Copyright 2026 Anthropic PBC | COMMENT |
| LOW | targets/drlibs/entry.c | 1 | // Copyright 2026 Anthropic PBC | COMMENT |
| LOW | targets/alsa/entry.c | 1 | // Copyright 2026 Anthropic PBC | COMMENT |
| LOW | tests/__init__.py | 1 | # Copyright 2026 Anthropic PBC | COMMENT |
| LOW | harness/auth.py | 361 | COMMENT | |
| LOW | harness/__init__.py | 1 | # Copyright 2026 Anthropic PBC | COMMENT |
| LOW | harness/cli.py | 1 | # Copyright 2026 Anthropic PBC | COMMENT |
| LOW | harness/prompts/__init__.py | 1 | # Copyright 2026 Anthropic PBC | COMMENT |
| LOW | scripts/egress_proxy.py | 81 | client = self.connection | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | harness/patch_grade.py | 37 | CODE | |
| LOW | harness/asan.py | 86 | CODE | |
| LOW | harness/cli.py | 653 | CODE | |
| LOW | harness/agent.py | 87 | CODE | |
| LOW | harness/agent.py | 113 | CODE | |
| LOW | harness/agent.py | 247 | CODE | |
| LOW | scripts/egress_proxy.py | 86 | CODE | |
| LOW | scripts/egress_proxy.py | 109 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/blog-post.md | 187 | * [Claude Security](https://www.anthropic.com/product/security): Anthropic’s managed product for agentic vulnerability d | COMMENT |
| MEDIUM | docs/prompting.md | 5 | - [**Give the Model Room to Work**](#give-the-model-room-to-work) · High-level tasks over prescriptive scaffolding | CODE |
| MEDIUM | docs/prompting.md | 11 | - [**Preventing Harmful Actions**](#preventing-harmful-actions) · Prompt-level guardrails help as defense-in-depth | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/blog-post.md | 78 | **Refer to the [harness README.md](https://github.com/anthropics/defending-code-reference-harness/tree/main/harness) for | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | harness/patch.py | 30 | CODE | |
| LOW | harness/patch_grade.py | 37 | CODE | |
| LOW | harness/find.py | 21 | CODE | |
| LOW | harness/report.py | 37 | CODE |