AI Slop Code Risk Monitor

aws/s2n-tls

SlopCodeMonitor badge for aws/s2n-tls Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

An implementation of the TLS/SSL protocols

3.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for aws/s2n-tls, a C project with 4,785 GitHub stars. SynthScan examined 332,411 lines of code across 1739 source files, recording 912 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 3.0 (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.

3.0
Adjusted Signal
3.0
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
4.8K
Stars
C
Language
332.4K
Lines of Code
1.7K
Files
912
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 13.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 1.2/100 · LOW

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

PR Review Velocity Impact 14.0/100 · LOW

Which changes need focused human review? 912 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 12MEDIUM 14LOW 886

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 912 distinct pattern matches across 15 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 Block821 hits · 821 pts
SeverityFileLineSnippetContext
LOWcodebuild/bin/install_apache2.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/cppcheck_suppressions.txt1// Cppcheck 2.13 suppressions for s2n-tlsCOMMENT
LOWcodebuild/bin/install_ctverif.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/utils.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/install_awslc.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/install_openssl_3_0.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/jobs.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/test_libcrypto_interning.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/install_z3_yices.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_default_dependencies.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_openssl_1_0_2_fips.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/install_prlimit.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/s2n_install_test_dependencies.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/fuzz_corpus_download.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/s2n_open_fds_test.py1# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.COMMENT
LOWcodebuild/bin/s2n_set_build_preset.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/clang_format_changed_files.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_al_dependencies.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_sslyze.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_ubuntu_dependencies.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/s2n_codebuild_al.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_clang.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/grep_simple_mistakes.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/coverage_report.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/test_dynamic_load.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/install_openssl_1_1_1.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/fuzz_coverage_report.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_openssl_4_0.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/test_install_shared_and_static.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/run_sidetrail.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_python.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/s2n_codebuild.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_sidetrail.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/run_kwstyle.sh1#! /bin/bashCOMMENT
LOWcodebuild/bin/install_libressl.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/s2n_override_paths.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/run_cppcheck.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/header_mistake_scanner.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_shellcheck.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_openssl_1_0_2.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/test_exec_leak.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/install_boringssl.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/cpp_style_comment_linter.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_s2n_head.sh1#!/usr/bin/env bashCOMMENT
LOWcodebuild/bin/install_sidetrail_dependencies.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/s2n_setup_env.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/s2n_apache2.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_saw.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/start_codebuild.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/install_gnutls37.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/build_aws_crt_cpp.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/fuzz_corpus_upload.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/run_ctverif.sh1#!/bin/bashCOMMENT
LOWcodebuild/bin/format.sh1#!/bin/bashCOMMENT
LOWcodebuild/spec/buildspec_musl.yml1---COMMENT
LOWcodebuild/spec/buildspec_fuzz_scheduled.yml1---COMMENT
LOWcodebuild/spec/buildspec_sidetrail.yml1---COMMENT
LOWcodebuild/spec/buildspec_s2n_tls_bench.yml1---COMMENT
LOWcodebuild/spec/buildspec_ubuntu.yml1---COMMENT
LOWcodebuild/spec/buildspec_fuzz.yml1---COMMENT
761 more matches not shown…
Cross-File Repetition6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHtests/integrationv2/test_key_update.py0sometimes the hello retry test parameters in combination with the s2n libcrypto results in no test cases existing. in thSTRING
HIGHtests/integrationv2/test_version_negotiation.py0sometimes the hello retry test parameters in combination with the s2n libcrypto results in no test cases existing. in thSTRING
HIGHtests/integrationv2/test_early_data.py0sometimes the hello retry test parameters in combination with the s2n libcrypto results in no test cases existing. in thSTRING
HIGHtests/integrationv2/test_record_padding.py0sometimes the hello retry test parameters in combination with the s2n libcrypto results in no test cases existing. in thSTRING
HIGHtests/integrationv2/test_external_psk.py0sometimes the hello retry test parameters in combination with the s2n libcrypto results in no test cases existing. in thSTRING
HIGHtests/integrationv2/test_hello_retry_requests.py0sometimes the hello retry test parameters in combination with the s2n libcrypto results in no test cases existing. in thSTRING
Hyper-Verbose Identifiers26 hits · 27 pts
SeverityFileLineSnippetContext
LOWtests/integrationv2/test_renegotiate_apache.py46def test_apache_endpoints_fail_with_no_reneg(managed_process, protocol, endpoint): # noqa: F811CODE
LOWtests/integrationv2/test_renegotiate_apache.py82def test_change_cipher_suite_endpoint(managed_process, curve, protocol): # noqa: F811CODE
LOWtests/integrationv2/test_renegotiate_apache.py113def test_mutual_auth_endpoint(managed_process, curve, protocol): # noqa: F811CODE
LOWtests/integrationv2/conftest.py83def pytest_collection_modifyitems(config, items):CODE
LOWtests/integrationv2/test_version_negotiation.py35def invalid_version_negotiation_test_parameters(*args, **kwargs):CODE
LOWtests/integrationv2/test_client_authentication.py29def assert_openssl_handshake_complete(results, is_complete=True):CODE
LOWtests/integrationv2/test_record_padding.py44def get_payload_size_from_openssl_trace(record_size_bytes: str) -> int:CODE
LOWtests/integrationv2/test_record_padding.py52def assert_openssl_records_are_padded_correctly(openssl_output: str, padding_size: int):CODE
LOW⚡tests/integrationv2/test_sslyze.py215def assert_scan_result_completed(scan_result):CODE
LOW⚡tests/integrationv2/test_sslyze.py216 def get_connectivity_error_str(tb):CODE
LOW⚡tests/integrationv2/test_sslyze.py226def assert_scan_attempt_completed(scan_attempt):CODE
LOWtests/integrationv2/test_sslyze.py242def invalid_sslyze_scan_parameters(*args, **kwargs):CODE
LOWtests/integrationv2/test_sslyze.py318def invalid_certificate_scans_parameters(*args, **kwargs):CODE
LOWtests/integrationv2/test_sslyze.py361def test_sslyze_certificate_scans(CODE
LOWtests/integrationv2/test_external_psk.py76def get_psk_hash_alg_from_cipher(cipher):CODE
LOWtests/integrationv2/test_external_psk.py109def validate_negotiated_psk_openssl(outcome, results):CODE
LOWtests/integrationv2/utils.py32def get_expected_openssl_version(protocol):CODE
LOWtests/integrationv2/utils.py41def get_expected_gnutls_version(protocol):CODE
LOWtests/integrationv2/test_fragmentation.py27def invalid_test_parameters_frag_len(*args, **kwargs):CODE
LOWtests/integrationv2/test_serialization.py61def test_server_serialization_backwards_compat(CODE
LOWtests/integrationv2/test_hello_retry_requests.py197def test_hrr_with_default_keyshare(CODE
LOWtests/cbmc/proofs/run-cbmc-proofs.py293def should_enable_memory_profiling(litani_caps, args):STRING
LOWtests/cbmc/proofs/lib/summarize.py28def _get_max_length_per_column_list(data):CODE
LOWtests/cbmc/proofs/lib/summarize.py36def _get_table_header_separator(max_length_per_column_list):CODE
LOWtests/cbmc/proofs/lib/summarize.py70def _get_status_and_proof_summaries(run_dict):CODE
LOWtests/sidetrail/bin/ct-verif.rb8def run_command_with_heartbeat (beat_time, cmd)CODE
Slop Phrases7 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUM…gs/rust-examples/tokio-server-client/src/bin/client.rs10/// NOTE: this ca is to be used for demonstration purposes only!COMMENT
MEDIUM…gs/rust-examples/tokio-server-client/src/bin/server.rs10/// NOTE: this certificate and key are to be used for demonstration purposes only!COMMENT
MEDIUM…gs/rust-examples/hyper-server-client/src/bin/client.rs11/// NOTE: this CA is to be used for demonstration purposes only!COMMENT
MEDIUM…gs/rust-examples/hyper-server-client/src/bin/server.rs13/// NOTE: this certificate and key are to be used for demonstration purposes only!COMMENT
MEDIUMbindings/rust-examples/key-logging/src/lib.rs84 /// NOTE: these materials are to be used for demonstration purposes only!COMMENT
MEDIUMbindings/rust-examples/mutual-tls/src/bin/client.rs13/// NOTE: this certificate, key, and ca are to be used for demonstration purposes only!COMMENT
MEDIUMbindings/rust-examples/mutual-tls/src/bin/server.rs16/// NOTE: this certificate, key, and ca are to be used for demonstration purposes only!COMMENT
Structural Annotation Overuse11 hits · 16 pts
SeverityFileLineSnippetContext
LOW.clinerules/BINDINGS_RELEASE_STEPS.md37#### Step 2: Run generate.shCOMMENT
LOW.clinerules/BINDINGS_RELEASE_STEPS.md55#### Step 3: Update s2n-tls CrateCOMMENT
LOW.clinerules/BINDINGS_RELEASE_STEPS.md83#### Step 4: Update s2n-tls-tokio CrateCOMMENT
LOW…/rust/standard/integration/src/record/buffered_send.rs77 // Step 1: if a custom send buffer is configured, s2n checks it against aggressivelyCOMMENT
LOW…/rust/standard/integration/src/record/buffered_send.rs97 // Step 2: the per-record overhead added on top of the plaintext fragment.COMMENT
LOW…/rust/standard/integration/src/record/buffered_send.rs120 // Step 3: TLS 1.3 protected records carry one extra inner content type byte.COMMENT
LOW…andard/integration/src/handshake/session_resumption.rs286 // Step 1: OpenSSL client ↔ OpenSSL server handshake to generate a sessionCOMMENT
LOW…andard/integration/src/handshake/session_resumption.rs382 // Step 1: Establish session with first server and get ticketCOMMENT
LOW…andard/integration/src/handshake/session_resumption.rs397 // Step 2: Try to resume with second server using ticket from first serverCOMMENT
LOW…ndings/rust/extended/s2n-tls/src/testing/resumption.rs195 // Step 1: obtain a genuine server-issued TLS1.3 ticket via a normal handshake.COMMENT
LOW…ndings/rust/extended/s2n-tls/src/testing/resumption.rs231 // Step 2: craft a TLS1.2 client session that carries this TLS1.3 ticket and aCOMMENT
Empty Error Handlers3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtests/integrationv2/providers.py910except FileNotFoundError:CODE
HIGHtests/integrationv2/processes.py139except BrokenPipeError:CODE
HIGHtests/integrationv2/fixtures.py90except Exception as _:CODE
AI Slop Vocabulary5 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/s2n_alerts_protocol_test.c184 *# The implementation SHOULD provide a way to facilitate logging the sendingCOMMENT
LOWtests/integrationv2/test_early_data.py90# but for now we can just use `-sess_in/out` and cover the S2N->S2N case in the S2N client tests.COMMENT
MEDIUM…specs/www.rfc-editor.org/rfc/rfc5246/appendix-E.2.toml46# This field, in conjunction with the version field, identifies aCOMMENT
MEDIUM…/specs/www.rfc-editor.org/rfc/rfc8446/section-6.2.toml21# implementation SHOULD provide a way to facilitate logging the sendingCOMMENT
MEDIUMbindings/rust/standard/integration/Cargo.toml62# tls-harness/Cargo.toml for why it is used instead of `boring`.COMMENT
AI Response Leakage2 hits · 12 pts
SeverityFileLineSnippetContext
HIGH…/specs/www.rfc-editor.org/rfc/rfc8446/section-7.1.toml42# In this version of TLS 1.3, the two input secrets are:COMMENT
HIGHbindings/rust-examples/mutual-tls/README.md5Note that when client authentication is used, the server MUST implement a host name verification callback to validate thCODE
Verbosity Indicators8 hits · 12 pts
SeverityFileLineSnippetContext
LOW…/rust/standard/integration/src/record/buffered_send.rs77 // Step 1: if a custom send buffer is configured, s2n checks it against aggressivelyCOMMENT
LOW…/rust/standard/integration/src/record/buffered_send.rs97 // Step 2: the per-record overhead added on top of the plaintext fragment.COMMENT
LOW…/rust/standard/integration/src/record/buffered_send.rs120 // Step 3: TLS 1.3 protected records carry one extra inner content type byte.COMMENT
LOW…andard/integration/src/handshake/session_resumption.rs286 // Step 1: OpenSSL client ↔ OpenSSL server handshake to generate a sessionCOMMENT
LOW…andard/integration/src/handshake/session_resumption.rs382 // Step 1: Establish session with first server and get ticketCOMMENT
LOW…andard/integration/src/handshake/session_resumption.rs397 // Step 2: Try to resume with second server using ticket from first serverCOMMENT
LOW…ndings/rust/extended/s2n-tls/src/testing/resumption.rs195 // Step 1: obtain a genuine server-issued TLS1.3 ticket via a normal handshake.COMMENT
LOW…ndings/rust/extended/s2n-tls/src/testing/resumption.rs231 // Step 2: craft a TLS1.2 client session that carries this TLS1.3 ticket and aCOMMENT
Deep Nesting9 hits · 9 pts
SeverityFileLineSnippetContext
LOWcodebuild/bin/s2n_open_fds_test.py32CODE
LOWtests/integrationv2/test_version_negotiation.py129CODE
LOWtests/integrationv2/providers.py891CODE
LOWtests/integrationv2/providers.py166CODE
LOWtests/integrationv2/providers.py426CODE
LOWtests/integrationv2/providers.py489CODE
LOWtests/integrationv2/providers.py647CODE
LOWtests/integrationv2/providers.py669CODE
LOWtests/integrationv2/processes.py109CODE
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMcodebuild/bin/s2n_setup_env.sh148 # Create a link to the selected libcrypto. This shouldn't be needed when LIBCRYPTO_ROOT is set, but some testsCOMMENT
MEDIUMtests/pems/crl/generate.sh70 # Create a chain with just the root certificate for validating child certificatesCOMMENT
MEDIUMtests/pems/crl/generate.sh144 # Create a chain that includes the newly signed certificate and all parent certificatesCOMMENT
Cross-Language Confusion1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHscram/aes_scram.py154 # T = GMAC (N, A||C, null)COMMENT
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWcodebuild/bin/fuzz_corpus_download.sh24 # Check if corpus.zip exists in the specified S3 location.COMMENT
LOWtests/sidetrail/count_success.pl43 #Check if the code under test used unexpected functionsCOMMENT
LOWtests/ctverif/count_success.pl38 #Check if the code under test used unexpected functionsCOMMENT
Excessive Try-Catch Wrapping4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtests/integrationv2/processes.py437 except Exception as ex:CODE
LOWtests/integrationv2/processes.py483 except Exception as ex:CODE
LOWtests/integrationv2/fixtures.py90 except Exception as _:CODE
LOWtests/cbmc/proofs/lib/summarize.py142 except Exception as ex: # pylint: disable=broad-exceptCODE
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWtests/integrationv2/processes.py364CODE
LOWtests/integrationv2/common.py704CODE
LOW.github/gha_monitor/gha_monitor/sns.py26CODE