Skills for threat modeling, scanning, triage, patching, plus an autonomous scanning harness you can /customize
This report summarizes scanner evidence for anthropics/defending-code-reference-harness, a Python project with 7,566 GitHub stars. SynthScan examined 24,645 lines of code across 138 source files, recording 519 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 32.4 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 358 finding(s).
Are imports declared and package/API names verified? 46 finding(s).
Are wrappers, guards, and repeated structures necessary? 437 finding(s).
Which changes need focused human review? 519 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 519 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| 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_dnrcanary.py | 594 | except OSError: | CODE |
| HIGH | dnr_harness/cli.py | 292 | except (OSError, json.JSONDecodeError): | CODE |
| HIGH | harness/cli.py | 107 | except (FileNotFoundError, ProcessLookupError, PermissionError, IndexError): | CODE |
| HIGH | harness/agent.py | 229 | except (asyncio.TimeoutError, ProcessLookupError): | CODE |
| HIGH | scripts/egress_proxy.py | 124 | except OSError: | CODE |
| HIGH | scripts/egress_proxy.py | 142 | except OSError: | CODE |
| HIGH | scripts/egress_proxy.py | 132 | except OSError: | 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 |