Skip to content

fix(supervisor): report plaintext scheme to middleware - #4397

Open
ericcurtin wants to merge 1 commit into
NVIDIA:mainfrom
ericcurtin:fix/4253-plaintext-middleware-scheme/ericcurtin
Open

ericcurtin wants to merge 1 commit into
NVIDIA:mainfrom
ericcurtin:fix/4253-plaintext-middleware-scheme/ericcurtin

Conversation

@ericcurtin

@ericcurtin ericcurtin commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Plaintext HTTP in a tunnel reached middleware as https (and wss). Derive the scheme from the transport.

Related Issue

Closes #4253

Changes

  • Add request_scheme and websocket_scheme to L7EvalContext.
  • Use them instead of hardcoded https and wss.

Testing

  • Checks appropriate to the affected code and behavior pass
  • Unit tests added/updated (if applicable)
  • E2E tests added/updated (if applicable)

cargo test, cargo clippy -D warnings and cargo fmt pass for openshell-supervisor-network.

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

Closes NVIDIA#4253

Signed-off-by: Eric Curtin <eric.curtin@docker.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 10, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@ericcurtin

Copy link
Copy Markdown
Contributor Author

@pimlock @krishicks PTAL when you get a chance, and /ok to test 335066c95cdf9ffe8b245f9a7bd144c4db5e65b0 if it looks good. Thank you!

bettyc925 pushed a commit to AtlaSent/atlasent-mcp-server that referenced this pull request Oct 10, 2026


Makes "this OpenShell release reports the real scheme" a measurement
rather than a changelog read, following the startup-probe pattern.

- runTransportIdentityProbe sends a TLS and a tunnelled-plaintext request
  and compares the scheme middleware was told. Passes only if TLS reads
  https and plaintext reads http; not_observed fails; the TLS case is the
  in-run positive control; defect_4397 flags plaintext reported as https.
- npm run test:openshell-transport-acceptance: opt-in live harness
  (OPENSHELL_VERSION + OPENSHELL_TRANSPORT_PROBE_CMD), never in npm test.
- The workload guard now logs the scheme/host/port OpenShell reported, on
  allow and deny; reportedSchemeFromGuardLog reads it back.
- The #4397 advisory drops only for a version listed in
  OPENSHELL_TRANSPORT_IDENTITY_CONFIRMED, which is empty until a live pass
  is recorded.

Not yet run against a live OpenShell. Dry-run against stub commands:
emulated #4397 fails with defect_4397, emulated fix passes, a blind
harness fails not_observed. Six mutations of the probe and log each fail a
test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012SejQX5UcKWoqk5xQvP1yd
@putmanmodel

Copy link
Copy Markdown

Thanks for picking this up and putting together the fix — I really appreciate it.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(supervisor): plaintext HTTP request is reported to middleware with target.scheme = "https"

2 participants