☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L 🐛 CWE-266
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-11521

CVE-2026-11521 Improper Authorization in Mohammed-eid35
📅 PUBLISHED: 2026-06-08 15:16 UTC 🔄 UPDATED: 2026-08-18 17:13 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.27%
👁️
0.27% probability
6.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 5.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-11521 is a critical improper authorization vulnerability in the TransactionController.java file of the bank-management-system-springboot project by Mohammed-eid35. The vulnerability allows an unauthenticated remote attacker to bypass authorization checks on transaction endpoints, potentially enabling unauthorized fund transfers, balance manipulation, or data exfiltration. The project uses a rolling release model, and the maintainer has not responded to the issue report. A public proof-of-concept (PoC) exists, increasing the risk of exploitation. The CVSS score is 6.3 (Medium), but the lack of authentication requirements and public exploit availability elevate the real-world risk.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This is a Java/Spring Boot application, not a package manager-based project (NPM, PyPI, Go, Ruby). No supply chain package security concerns apply.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
  • Base Score: 6.3 (Medium)
  • Attack Vector: Network (AV:N) – exploitable remotely.
  • Attack Complexity: Low (AC:L) – no special conditions required.
  • Privileges Required: None (PR:N) – no authentication needed.
  • User Interaction: None (UI:N) – no user action required.
  • Scope: Unchanged (S:U) – impact confined to the vulnerable component.
  • Confidentiality Impact: Low (C:L) – limited data exposure.
  • Integrity Impact: Low (I:L) – limited modification of data.
  • Availability Impact: Low (A:L) – limited service disruption.

Threat Level: High (due to public exploit and no patch).

Deep Dive & Mechanics

The vulnerability resides in the TransactionController.java file, specifically in the transaction endpoint. The controller likely handles HTTP requests for operations like fund transfers, balance inquiries, or transaction history. The flaw is an improper authorization check (CWE-285), meaning the endpoint does not verify whether the requesting user has the right to perform the action. This could be due to:

  • Missing @PreAuthorize or @Secured annotations.
  • Lack of session validation or token verification.
  • Incorrect role/permission checks in the method logic.

An attacker can craft a direct HTTP request to the vulnerable endpoint (e.g., POST /api/transactions/transfer) with arbitrary parameters (e.g., fromAccount, toAccount, amount) without providing valid credentials or session tokens. The server processes the request as if it were authorized, leading to unauthorized transactions.

The project uses a rolling release model, meaning there are no versioned releases. The vulnerable commit is 7b9bcc65ad7df3db29af71aed9bb500e5f24d948. The maintainer has been notified via an issue report but has not responded.

Vulnerable vs. Patched Code

Vulnerable Code (TransactionController.java):

@RestController
@RequestMapping("/api/transactions")
public class TransactionController {

    @PostMapping("/transfer")
    public ResponseEntity<?> transfer(@RequestBody TransferRequest request) {
        // Missing authorization check
        transactionService.transfer(request.getFromAccount(), request.getToAccount(), request.getAmount());
        return ResponseEntity.ok("Transfer successful");
    }
}

Patched Code (Hypothetical fix):

@RestController
@RequestMapping("/api/transactions")
public class TransactionController {

    @PostMapping("/transfer")
    @PreAuthorize("hasRole('USER') and #request.fromAccount == authentication.name")
    public ResponseEntity<?> transfer(@RequestBody TransferRequest request) {
        transactionService.transfer(request.getFromAccount(), request.getToAccount(), request.getAmount());
        return ResponseEntity.ok("Transfer successful");
    }
}

The patched version adds @PreAuthorize to ensure the user is authenticated and owns the source account.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A running instance of the vulnerable application (e.g., on http://target:8080).
  • No authentication required.

Exploit Steps:

  1. Identify the vulnerable endpoint (e.g., POST /api/transactions/transfer).
  2. Craft a malicious request with arbitrary account numbers and amounts.
  3. Send the request using curl or a script.

Example Exploit (curl):

curl -X POST http://target:8080/api/transactions/transfer \
  -H "Content-Type: application/json" \
  -d '{"fromAccount":"123456","toAccount":"654321","amount":1000.00}'

Expected Result: The server responds with "Transfer successful" even though the attacker is not authenticated.

Blue Team

Detection:

  • Monitor for POST requests to /api/transactions/transfer without valid session tokens.
  • Look for multiple transfer requests from the same IP to different accounts.
  • Alert on transactions where fromAccount does not match any known user.

Mitigation:

  • Implement authentication and authorization checks immediately.
  • Apply input validation and rate limiting.
  • Use a Web Application Firewall (WAF) to block suspicious patterns.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • HTTP POST requests to /api/transactions/transfer without Authorization header.
    • Requests with JSON body containing fromAccount, toAccount, amount fields.
    • Unusual transaction amounts or rapid succession of transfers.
  • File IOCs:

    • Log entries showing Transfer successful for unauthenticated requests.
    • Absence of user ID or session ID in transaction logs.
  • Behavioral IOCs:

    • Multiple failed login attempts followed by successful transfers (if authentication exists elsewhere).
    • Transfers from accounts that are not associated with the requesting IP.

Detection Engineering

YARA Rule

rule CVE_2026_11521_TransactionController {
    meta:
        description = "Detects vulnerable TransactionController.java with missing authorization"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2026-11521"
    strings:
        $s1 = "TransactionController" nocase
        $s2 = "transfer" nocase
        $s3 = "@PostMapping" nocase
        $s4 = "@PreAuthorize" nocase
    condition:
        all of ($s1, $s2, $s3) and not $s4
}

Sigma Rule

title: CVE-2026-11521 - Unauthorized Transaction Request
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP POST requests to the vulnerable transaction endpoint without authentication
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: POST
        cs-uri-stem: '/api/transactions/transfer'
        cs-uri-query: '*'
    condition: selection
falsepositives:
    - Legitimate authenticated users (if authentication is implemented elsewhere)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2026-11521 - Unauthorized Transaction Attempt"; flow:to_server; content:"POST"; http_method; content:"/api/transactions/transfer"; http_uri; content:"fromAccount"; http_client_body; content:"toAccount"; http_client_body; content:"amount"; http_client_body; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the vulnerable endpoint if possible, or restrict access via firewall rules.
  2. Implement authentication (e.g., JWT, session tokens) for all transaction endpoints.
  3. Add authorization checks using Spring Security annotations (@PreAuthorize, @Secured).
  4. Apply input validation to ensure fromAccount belongs to the authenticated user.

Long-term Fix:

  • Fork the repository and apply the patch (see Vulnerable vs. Patched Code section).
  • Monitor the official repository for updates or consider migrating to a maintained alternative.

Workaround:

  • Use a reverse proxy (e.g., Nginx) to block requests to /api/transactions/transfer unless they contain a valid token.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-11521/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.