CWE-301 Base Draft Medium likelihood

Reflection Attack in an Authentication Protocol

A reflection attack is a flaw in mutual authentication protocols that allows an attacker to impersonate a legitimate user without knowing the secret key. This happens when an attacker can bounce, or…

Definition

What is CWE-301?

A reflection attack is a flaw in mutual authentication protocols that allows an attacker to impersonate a legitimate user without knowing the secret key. This happens when an attacker can bounce, or 'reflect,' a server's own challenge back to it using a second connection, tricking the system into granting access.
In a typical mutual authentication setup, both the client and server share a secret key. To prove identity without sending the key directly, they exchange random challenges that must be encrypted with that shared secret. The vulnerability arises when the same key is used across multiple sessions and the protocol design allows an attacker to use the server's response from one connection to answer a challenge in another. Here’s how the attack works in practice: An attacker initiates a connection to the server, posing as a legitimate user, and receives a challenge. Instead of solving it, the attacker opens a second connection to the server. In this new session, the attacker sends the server's original challenge as its own. The server helpfully encrypts it and sends the response back, which the attacker then uses to correctly answer the first connection's challenge. This bypasses authentication because the server essentially authenticates itself, granting the attacker access.
Auswirkungen in der Praxis

Real-world CVEs caused by CWE-301

  • product authentication succeeds if user-provided MD5 hash matches the hash in its database; this can be subjected to replay attacks.

Wie Angreifer es ausnutzen

Angreiferpfad Schritt für Schritt

  1. 1

    Identifiziere einen Codepfad, der nicht vertrauenswürdige Eingaben ohne Validierung verarbeitet.

  2. 2

    Erzeuge eine Payload, die das unsichere Verhalten auslöst — Injection, Traversal, Overflow oder Logik-Missbrauch.

  3. 3

    Liefere die Payload über einen normalen Request aus und beobachte die Reaktion der Anwendung.

  4. 4

    Iteriere, bis die Antwort Daten preisgibt, Angreifer-Code ausführt oder Berechtigungen eskaliert.

Verwundbares Codebeispiel

Vulnerable C

The following example demonstrates the weakness.

Verwundbar C
unsigned char *simple_digest(char *alg,char *buf,unsigned int len, int *olen) {
  	const EVP_MD *m;
  	EVP_MD_CTX ctx;
  	unsigned char *ret;
  	OpenSSL_add_all_digests();
  	if (!(m = EVP_get_digestbyname(alg))) return NULL;
  	if (!(ret = (unsigned char*)malloc(EVP_MAX_MD_SIZE))) return NULL;
  	EVP_DigestInit(&ctx, m);
  	EVP_DigestUpdate(&ctx,buf,len);
  	EVP_DigestFinal(&ctx,ret,olen);
  	return ret;
  }
  unsigned char *generate_password_and_cmd(char *password_and_cmd) {
  	simple_digest("sha1",password,strlen(password_and_cmd)
  	...
  	);
  }
Sicheres Codebeispiel

Secure pseudo

Sicher pseudo
// Validate, sanitize, or use a safe API before reaching the sink.
function handleRequest(input) {
  const safe = validateAndEscape(input);
  return executeWithGuards(safe);
}
What changed: the unsafe sink is replaced (or the input is validated/escaped) so the same payload no longer triggers the weakness.
Präventions-Checkliste

How to prevent CWE-301

  • Architecture and Design Use different keys for the initiator and responder or of a different type of challenge for the initiator and responder.
  • Architecture and Design Let the initiator prove its identity before proceeding.
Erkennungssignale

How to detect CWE-301

SAST High

Führe statische Analyse (SAST) auf der Codebasis aus und suche im Datenfluss nach dem unsicheren Muster.

DAST Moderate

Führe dynamische Application-Security-Tests gegen den Live-Endpoint aus.

Runtime Moderate

Beobachte Runtime-Logs auf ungewöhnliche Exception-Traces, fehlerhafte Eingaben oder Versuche, Autorisierung zu umgehen.

Code review Moderate

Code Review: Markiere jeden neuen Code, der Eingaben von dieser Oberfläche ohne validierte Framework-Helper verarbeitet.

CWE-301

Don't catalog this weakness. Prove it's reachable.

Plexicus turns CWE catalogs into evidence: every CWE-pattern is matched against your real code graph, reach is proven on a sandbox clone, and verified findings ship as reviewed PRs.

Häufig gestellte Fragen

Frequently asked questions

Was ist CWE-301?

A reflection attack is a flaw in mutual authentication protocols that allows an attacker to impersonate a legitimate user without knowing the secret key. This happens when an attacker can bounce, or 'reflect,' a server's own challenge back to it using a second connection, tricking the system into granting access.

Wie gravierend ist CWE-301?

MITRE stuft die Exploit-Wahrscheinlichkeit als mittel ein — eine Ausnutzung ist realistisch, erfordert aber meist bestimmte Bedingungen.

Welche Sprachen oder Plattformen sind von CWE-301 betroffen?

MITRE hat für diese CWE keine betroffenen Plattformen spezifiziert — sie kann in den meisten Anwendungs-Stacks auftreten.

Wie kann ich CWE-301 verhindern?

Use different keys for the initiator and responder or of a different type of challenge for the initiator and responder. Let the initiator prove its identity before proceeding.

Wie erkennt und behebt Plexicus CWE-301?

Die SAST-Engine von Plexicus erkennt die Datenfluss-Signatur von CWE-301 bei jedem Commit. Bei einem Treffer öffnet unser Codex-Remedium-Agent einen Fix-PR mit korrigiertem Code, Tests und einer einzeiligen Zusammenfassung für den Reviewer.

Wo erfahre ich mehr über CWE-301?

MITRE veröffentlicht die kanonische Definition unter https://cwe.mitre.org/data/definitions/301.html. Für ergänzende Hinweise kannst du auch die OWASP- und NIST-Dokumentation heranziehen.

Verwandte Schwachstellen

Weaknesses related to CWE-301

CWE-1390 Parent

Weak Authentication

This vulnerability occurs when a system's login or identity verification process is too easy to bypass or fool. While it attempts to check…

CWE-1391 Sibling

Use of Weak Credentials

This vulnerability occurs when a system relies on weak authentication credentials—like default passwords, hard-coded keys, or easily…

CWE-262 Sibling

Not Using Password Aging

This vulnerability occurs when a system lacks password expiration policies, allowing users to keep the same password indefinitely.

CWE-263 Sibling

Password Aging with Long Expiration

The system enforces password changes, but the time allowed between changes is excessively long, weakening security.

CWE-289 Sibling

Authentication Bypass by Alternate Name

This vulnerability occurs when a system checks access based on a resource or user name, but fails to account for all the different names…

CWE-290 Sibling

Authentication Bypass by Spoofing

This weakness occurs when an application's authentication system can be tricked into accepting forged or manipulated credentials, allowing…

CWE-294 Sibling

Authentication Bypass by Capture-replay

This vulnerability occurs when an attacker can intercept and record legitimate authentication traffic, then replay it later to gain…

CWE-302 Sibling

Authentication Bypass by Assumed-Immutable Data

This vulnerability occurs when an authentication system incorrectly treats certain data as unchangeable, when in fact an attacker can…

CWE-303 Sibling

Incorrect Implementation of Authentication Algorithm

This weakness occurs when a developer implements a standard authentication algorithm, but makes critical mistakes in the code that cause…

Bereit, das Wesentliche zu validieren?

Bereit zu validieren, was zählt.

Plexicus ist Proof-Driven AppSec: validierte Funde, kontextuelles Verständnis und geprüfte Remediation — in Evidenz verankert, mit Ihnen gescoped.

Qualifizierung

Prüfen Sie, ob AI Swarm Pentest zu Ihrer Umgebung passt.

Teilen Sie den wichtigsten Kontext. Wir prüfen den Umfang und nennen den nächsten kommerziellen Schritt.

Vor dem Absenden — prüfen Sie, ob Sie passen

0 / 280

Keine Verpflichtung. Wenn Sie nicht passen, sagen wir es Ihnen.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorized target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)
Private Runde Für Investoren