AI Slop Code Risk Monitor

Cisco-Talos/clamav

SlopCodeMonitor badge for Cisco-Talos/clamav Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

ClamAV - Documentation is here: https://docs.clamav.net

2.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for Cisco-Talos/clamav, a C project with 7,477 GitHub stars. SynthScan examined 338,268 lines of code across 873 source files, recording 817 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 2.6 (Low 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.

2.6
Adjusted Signal
2.6
Raw Pattern Score
100%
Time Factor
2026-10-22
Last Push
7.5K
Stars
C
Language
338.3K
Lines of Code
873
Files
817
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 10.9/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 771 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.3/100 · LOW

Are imports declared and package/API names verified? 23 finding(s).

Agent Over-Engineering Ratio 2.3/100 · LOW

Are wrappers, guards, and repeated structures necessary? 121 finding(s).

PR Review Velocity Impact 12.4/100 · LOW

Which changes need focused human review? 817 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 11MEDIUM 13LOW 793

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 817 distinct pattern matches across 10 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.

Over-Commented Block648 hits · 642 pts
SeverityFileLineSnippetContext
LOWINSTALL-cross-linux-arm64.md121#COMMENT
LOWINSTALL-cross-linux-arm64.md141#COMMENT
LOWsigtool/sigtool.c21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,COMMENT
LOWsigtool/sigtool.c41COMMENT
LOWsigtool/sigtool.c61#include "clamav_rust.h"COMMENT
LOWsigtool/vba.c21#include "clamav-config.h"COMMENT
LOWlibclammspack/mspack/readbits.h81COMMENT
LOWlibclammspack/mspack/oab.h41#define oabblk_CompSize (0x0004)COMMENT
LOWlibclammspack/mspack/mszipd.c21#define BITS_ORDER_LSBCOMMENT
LOWlibclammspack/mspack/lzx.h21COMMENT
LOWlibclammspack/mspack/mszip.h21COMMENT
LOWlibclammspack/mspack/chm.h21#define chmhead_Timestamp (0x0010)COMMENT
LOWlibclammspack/mspack/chm.h41COMMENT
LOWlibclammspack/mspack/chm.h61COMMENT
LOWlibclammspack/mspack/chm.h81#define lzxcd_Unknown1 (0x0018)COMMENT
LOWlibclammspack/mspack/macros.h21#endifCOMMENT
LOWlibclammspack/mspack/macros.h41#define EndGetM32(a) (((unsigned int) ((unsigned char *)(a))[0] << 24) | \COMMENT
LOWlibclammspack/mspack/macros.h61# define D(x)COMMENT
LOWlibclammspack/mspack/readhuff.h21#if !(defined(HUFF_TABLE) && defined(HUFF_LEN))COMMENT
LOWlibclammspack/mspack/kwaj.h61#if KWAJ_TABLESIZE < (KWAJ_MATCHLEN1_SYMS * 2)COMMENT
LOWlibclammspack/mspack/cab.h21#define cfhead_NumFolders (0x1A)COMMENT
LOWlibclammspack/mspack/cab.h41#define cffile_SIZEOF (0x10)COMMENT
LOWlibclammspack/mspack/lzxd.c81COMMENT
LOWlibclammspack/test/kwajd_test.c1/* KWAJ regression test suite */COMMENT
LOWlibclammspack/test/md5.h41typedef uintptr_t md5_uintptr;COMMENT
LOWlibclammspack/test/md5.h61# if USHRT_MAX == UINT_MAX_32_BITSCOMMENT
LOWlibclammspack/test/md5.h161}COMMENT
LOWlibclammspack/test/chmd_test.c1/* CHM regression test suite */COMMENT
LOWlibclammspack/test/cabd_test.c1/* cabinet decompression regression test suite */COMMENT
LOWlibclammspack/test/cabd_md5.c1#ifdef HAVE_CONFIG_HCOMMENT
LOWlibclammspack/test/md5.c21/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */COMMENT
LOWlibclammspack/test/md5.c41# define md5_process_block __md5_process_blockCOMMENT
LOWlibclammspack/examples/chmextract.c1#ifdef HAVE_CONFIG_HCOMMENT
LOWlibclammspack/examples/cabrip.c1#ifdef HAVE_CONFIG_HCOMMENT
LOWclamscan/manager.c21 */COMMENT
LOWclamscan/manager.c41#include <sys/resource.h>COMMENT
LOWclamscan/manager.c61// commonCOMMENT
LOWclamscan/clamscan.c21COMMENT
LOWclamscan/clamscan.c41#endifCOMMENT
LOWcmake/CheckFDPassing.c1#ifdef HAVE_SYS_TYPES_HCOMMENT
LOWunit_tests/check_disasm.c21 * MA 02110-1301, USA.COMMENT
LOWunit_tests/check_clamav.c1#if HAVE_CONFIG_HCOMMENT
LOWunit_tests/check_clamav.c21COMMENT
LOWunit_tests/check_clamav.c141 // cvd2->dsig= malloc(1);COMMENT
LOWunit_tests/check_jsnorm.c21 * MA 02110-1301, USA.COMMENT
LOWunit_tests/testcase.py181 # cls.log.info(f" clamd: {cls.clamd}")COMMENT
LOWunit_tests/check_clamd.c21 * MA 02110-1301, USA.COMMENT
LOWunit_tests/check_clamd.c41#include <winsock2.h>COMMENT
LOWunit_tests/check_matchers.c21#if HAVE_CONFIG_HCOMMENT
LOWunit_tests/check_bytecode.c21 * MA 02110-1301, USA.COMMENT
LOWunit_tests/check_htmlnorm.c21 * MA 02110-1301, USA.COMMENT
LOWunit_tests/check_regex.c21 * MA 02110-1301, USA.COMMENT
LOWunit_tests/check_str.c21 * MA 02110-1301, USA.COMMENT
LOWunit_tests/clamscan/allmatch_test.py141 # TARGET(0)COMMENT
LOWunit_tests/input/pe_allmatch/test-exe-src/build.py1#!/bin/env python3COMMENT
LOWunit_tests/input/pe_allmatch/test-exe-src/extract.h1#include <stdio.h>COMMENT
LOWunit_tests/input/pe_allmatch/test-exe-src/extract.h21#define DO8(X) DO7(X) X(8)COMMENT
LOWunit_tests/input/pe_allmatch/test-exe-src/extract.h41#define DO28(X) DO27(X) X(28)COMMENT
LOWunit_tests/input/pe_allmatch/test-exe-src/test.c1#include <stdio.h>COMMENT
LOW…ests/input/embedded_testfiles/emb/smol_exe/src/main.rs1#![no_std]COMMENT
588 more matches not shown…
Hyper-Verbose Identifiers98 hits · 92 pts
SeverityFileLineSnippetContext
LOWunit_tests/testcase.py37def _get_valgrind_track_fds_mode(valgrind):CODE
LOWunit_tests/clamsubmit_test.py225 def test_false_negative_workflow_with_acl(self):CODE
LOWunit_tests/clamsubmit_test.py256 def test_false_positive_workflow_without_acl(self):CODE
LOWunit_tests/clamsubmit_test.py283 def test_http_failures_stop_at_failing_stage(self):CODE
LOWunit_tests/clamsubmit_test.py297 def test_invalid_presigned_responses(self):CODE
LOWunit_tests/clamsubmit_test.py362 def test_oversized_presigned_response(self):CODE
LOWunit_tests/clamsubmit_test.py368 def test_bad_submission_redirects(self):CODE
LOWunit_tests/clamsubmit_test.py385 def test_missing_token_fails_cleanly(self):CODE
LOWunit_tests/clamsubmit_test.py392 def test_missing_page_csrf_token_fails_cleanly(self):CODE
LOWunit_tests/clamsubmit_test.py404 def test_empty_report_form_fails_cleanly(self):CODE
LOWunit_tests/clamsubmit_test.py411 def test_debug_output_redacts_sensitive_values(self):CODE
LOWunit_tests/clamd_test.py253 def run_clamdscan_fdpass_only(self,STRING
LOWunit_tests/freshclam_test.py826def start_mock_database_mirror(handler):STRING
LOWunit_tests/freshclam_test.py868def create_mock_database_mirror_server(handler, port):STRING
LOWunit_tests/clamscan/hash_and_file_type_test.py274 def test_html_file_type_tag_signatures_require_tag_boundary(self):CODE
LOWunit_tests/clamscan/assorted_test.py169 def test_pe_cert_trust_archive(self):CODE
LOWunit_tests/clamscan/assorted_test.py366 def test_cvdload_no_sign_fips_limits(self):CODE
LOWunit_tests/clamscan/container_sigs_test.py84 def test_clamscan_container_cache(self):CODE
LOWunit_tests/clamscan/container_sigs_test.py166 def test_handler_type_does_not_alert_on_retyped_layer(self):CODE
LOWunit_tests/clamscan/container_sigs_test.py194 def test_handler_type_retyped_layer_is_not_cached(self):CODE
LOWunit_tests/clamscan/heuristics_test.py50 def test_hidden_by_strong_indicator(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py86 def _can_create_directory_symlink(parent_dir: Path):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py102 def _create_directory_redirect(link_path: Path, target_path: Path):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py121 def _remove_directory_redirect(link_path: Path):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py194 def _exercise_quarantine_directory_replacement(self, action_mode: str):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py315 def _exercise_source_link_quarantine(self, action_mode: str):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py379 def _exercise_source_hardlink_quarantine(self, action_mode: str):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py435 def _exercise_source_link_replacement_quarantine(self, action_mode: str, attempt: int):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py550 def _exercise_source_link_replacement_until_infected(self, action_mode: str):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py564 def _exercise_search_only_quarantine_directory(self, action_mode: str):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py622 def test_quarantine_directory_replacement_does_not_redirect_copy_target(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py659 def test_quarantine_directory_replacement_does_not_redirect_move_target(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py704 def test_quarantine_copy_uses_real_source_path_for_symlink_source(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py722 def test_quarantine_move_uses_real_source_path_for_symlink_source(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py738 def test_quarantine_remove_uses_real_source_path_for_symlink_source(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py752 def test_quarantine_move_unlinks_submitted_hardlink(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py768 def test_quarantine_remove_unlinks_submitted_hardlink(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py778 def test_quarantine_copy_does_not_act_on_replaced_source_link(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py795 def test_quarantine_move_does_not_act_on_replaced_source_link(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py812 def test_quarantine_remove_does_not_act_on_replaced_source_link(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py826 def test_quarantine_copy_allows_search_only_destination_dir(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py839 def test_quarantine_move_allows_search_only_destination_dir(self):CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py852 def test_quarantine_copy_preserves_xattr(self):CODE
LOWunit_tests/clamscan/fp_check_test.py97 def test_alerts_on_normalized(self):STRING
LOWunit_tests/clamscan/fp_check_test.py185 def test_fp_for_normalized_wild(self):STRING
LOWunit_tests/clamscan/fp_check_test.py203 def test_fp_for_nonnormalized(self):STRING
LOWunit_tests/clamscan/fp_check_test.py220 def test_fp_for_nonnormalized_wild(self):STRING
LOWunit_tests/clamscan/fp_check_test.py253 def test_fp_for_zipped_file_wild(self):STRING
LOWunit_tests/clamscan/ole2_encryption_test.py94 def test_ministream_doc_metadata(self):CODE
LOWunit_tests/clamscan/ole2_encryption_test.py173 def test_ministream_docx_metadata(self):CODE
LOWunit_tests/clamscan/ole2_encryption_test.py251 def test_ministream_dot_metadata(self):CODE
LOWunit_tests/clamscan/ole2_encryption_test.py329 def test_ministream_ppsx_metadata(self):CODE
LOWunit_tests/clamscan/ole2_encryption_test.py407 def test_ministream_pptx_metadata(self):CODE
LOWunit_tests/clamscan/ole2_encryption_test.py485 def test_ministream_xls_metadata(self):CODE
LOWunit_tests/clamscan/ole2_encryption_test.py563 def test_ministream_xlsx_metadata(self):CODE
LOWunit_tests/clamscan/allmatch_test.py91 def test_many_sigs_no_allmatch(self):CODE
LOWunit_tests/clamscan/allmatch_test.py107 def test_regression_imphash_nosize(self):CODE
LOWunit_tests/clamscan/allmatch_test.py134 def test_regression_cbc_and_ndb(self):CODE
LOWunit_tests/clamscan/allmatch_test.py188 def test_txt_plus_clam_zipsfx(self):CODE
LOWunit_tests/clamscan/allmatch_test.py213 def test_exe_imphash_plus_zipsfx(self):CODE
38 more matches not shown…
Empty Error Handlers11 hits · 55 pts
SeverityFileLineSnippetContext
HIGHunit_tests/testcase.py220except Exception:CODE
HIGHunit_tests/clamsubmit_test.py91except BrokenPipeError:CODE
HIGHunit_tests/clamd_test.py138except Exception:CODE
HIGHunit_tests/clamd_test.py142except Exception:CODE
HIGHunit_tests/clamd_test.py969except Exception:CODE
HIGHunit_tests/clamd_test.py973except Exception:CODE
HIGHunit_tests/freshclam_test.py83except Exception:CODE
HIGHunit_tests/freshclam_test.py90except Exception:CODE
HIGHunit_tests/clamscan/quarantine_toctou_test.py284except FileNotFoundError:CODE
HIGHunit_tests/clamscan/quarantine_toctou_test.py523except FileNotFoundError:CODE
HIGHunit_tests/input/pe_allmatch/test-exe-src/build.py223except:CODE
Unused Imports23 hits · 23 pts
SeverityFileLineSnippetContext
LOWunit_tests/sigtool_test.py8CODE
LOWunit_tests/sigtool_test.py11CODE
LOWunit_tests/sigtool_test.py12CODE
LOWunit_tests/sigtool_test.py13CODE
LOWunit_tests/libclamav_test.py7CODE
LOWunit_tests/libclamav_test.py8CODE
LOWunit_tests/libclamav_test.py10CODE
LOWunit_tests/libclamav_test.py11CODE
LOWunit_tests/libclamav_test.py12CODE
LOWunit_tests/libclamav_test.py13CODE
LOWunit_tests/clamscan/save_pdf_uris_test.py9CODE
LOWunit_tests/clamscan/embedded_files_test.py8CODE
LOWunit_tests/clamscan/embedded_files_test.py8CODE
LOWunit_tests/clamscan/assorted_test.py8CODE
LOWunit_tests/clamscan/fp_check_test.py7CODE
LOWunit_tests/clamscan/ole2_encryption_test.py9CODE
LOWunit_tests/clamscan/pdf_stats_test.py9CODE
LOWunit_tests/clamscan/save_html_uris_test.py9CODE
LOWunit_tests/clamscan/match_offsets_test.py7CODE
LOWunit_tests/examples/ex_scan_callbacks_test.py42CODE
LOWfuzz/run_fuzzer_tests.py9CODE
LOWfuzz/run_fuzzer_tests.py9CODE
LOWfuzz/run_fuzzer_tests.py9CODE
Self-Referential Comments7 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMlibclammspack/test/test_files/chmd/generate.pl128# Create a CHM with the filename "::" right at the end of a PMGL chunkCOMMENT
MEDIUMlibclammspack/test/test_files/chmd/generate.pl146# Create a CHM with entries containing unicode character U+100COMMENT
MEDIUMlibclammspack/test/test_files/chmd/generate.pl157# Create a CHM with ENCINTs that go beyond what 32-bit architectures can handleCOMMENT
MEDIUMlibclammspack/test/test_files/chmd/generate.pl164# Create a CHM with ENCINTs that go beyond what 64-bit architectures can handleCOMMENT
MEDIUMunit_tests/testcase.py779 """This class provides methods to check logs and strings."""STRING
MEDIUMunit_tests/sigtool_test.py164 # Create a file to sign.STRING
MEDIUMunit_tests/clamscan/heuristics_test.py24 # Create a ZIP that has two things:COMMENT
AI Slop Vocabulary6 hits · 16 pts
SeverityFileLineSnippetContext
MEDIUMlibclammspack/mspack/readhuff.h16# error "readhuff.h is used in conjunction with readbits.h, include that first"COMMENT
LOWunit_tests/clamscan/_basic_test.py81 # in our scan, we'll just use the whole directory, which should load the ignore db *first*.COMMENT
MEDIUMlibclamunrar/secpassword.cpp173 // Try to utilize the secure Crypt[Un]ProtectMemory if possible.COMMENT
MEDIUMlibclamunrar/arcread.cpp81 // If locator extra field is available for recovery record, let's utilize it.COMMENT
MEDIUMlibclamav/mbox.c1741 // ole2 recursion does not leverage the ctx->recursion_stack stack.COMMENT
MEDIUMlibclamav/ole2_extract.c902 // ole2 recursion does not leverage the ctx->recursion_stack stack.COMMENT
Excessive Try-Catch Wrapping12 hits · 10 pts
SeverityFileLineSnippetContext
LOWunit_tests/testcase.py211 except Exception:CODE
LOWunit_tests/testcase.py220 except Exception:CODE
LOWunit_tests/clamd_test.py138 except Exception:STRING
LOWunit_tests/clamd_test.py142 except Exception:STRING
LOWunit_tests/clamd_test.py969 except Exception:STRING
LOWunit_tests/clamd_test.py973 except Exception:STRING
LOWunit_tests/freshclam_test.py83 except Exception:CODE
LOWunit_tests/freshclam_test.py90 except Exception:CODE
LOWunit_tests/freshclam_test.py848 except Exception:STRING
LOWunit_tests/freshclam_test.py905 except Exception as e:STRING
MEDIUMunit_tests/input/xor_testfile.py32 print("Error: Input file to be XOR'd does not exist: {}".format(in_file))CODE
LOWunit_tests/input/xor_testfile.py61 except Exception as exc:CODE
Deep Nesting9 hits · 8 pts
SeverityFileLineSnippetContext
LOWunit_tests/testcase.py304CODE
LOWunit_tests/testcase.py547CODE
LOWunit_tests/testcase.py714CODE
LOWunit_tests/testcase.py882CODE
LOWunit_tests/testcase.py959CODE
LOWunit_tests/clamsubmit_test.py67CODE
LOWunit_tests/clamsubmit_test.py105CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py64CODE
LOWunit_tests/clamscan/quarantine_toctou_test.py194CODE
Redundant / Tautological Comments2 hits · 2 pts
SeverityFileLineSnippetContext
LOWunit_tests/testcase.py160 # Check if Valgrind testing is requestedCOMMENT
LOWunit_tests/clamd_test.py109 # Check if fdpassing is supported.STRING
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWlibclamav/scanners.c5975 // If hash_hint is provided, we need to check if the hash_alg is valid.COMMENT