Skip to main content

Olivetin CVE-2026-32102

MEDIUM
Improper Access Control (CWE-284)
2026-03-11 security-advisories@github.com GHSA-228v-wc5r-j8m7
6.5
CVSS 3.1 · GitHub Advisory
Share

Severity by source

GitHub Advisory PRIMARY
6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
SUSE
MEDIUM
qualitative

Primary rating from GitHub Advisory.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

3
Patch released
Mar 31, 2026 - 21:13 nvd
Patch available
Analysis Generated
Mar 12, 2026 - 22:07 vuln.today
CVE Published
Mar 11, 2026 - 21:16 nvd
MEDIUM 6.5

DescriptionGitHub Advisory

OliveTin gives access to predefined shell commands from a web interface. In 3000.10.2 and earlier, OliveTin’s live EventStream broadcasts execution events and action output to authenticated dashboard subscribers without enforcing per-action authorization. A low-privileged authenticated user can receive output from actions they are not allowed to view, resulting in broken access control and sensitive information disclosure.

AnalysisAI

Summary

OliveTin’s live EventStream broadcasts execution events and action output to authenticated dashboard subscribers without enforcing per-action authorization. A low-privileged authenticated user can receive output from actions they are not allowed to view, resulting in broken access control and sensitive information disclosure. I validated this on OliveTin 3000.10.2.

Details

The issue is in the live event streaming path.

EventStream() only checks whether the caller may access the dashboard, then registers the user as a stream subscriber:

  • service/internal/api/api.go:776

After subscription, execution events are broadcast to all connected clients without checking whether each recipient is authorized to view logs for the action:

  • service/internal/api/api.go:846 OnExecutionStarted
  • service/internal/api/api.go:869 OnExecutionFinished
  • service/internal/api/api.go:1047 OnOutputChunk

The event payload includes action output through:

  • service/internal/api/api.go:295 internalLogEntryToPb
  • service/internal/api/api.go:302 Output

By contrast, the normal log APIs do apply per-action authorization checks:

  • service/internal/api/api.go:518 GetLogs
  • service/internal/api/api.go:585 GetActionLogs
  • service/internal/api/api.go:544 isLogEntryAllowed

Root cause:

  • the subscription path enforces only coarse dashboard access
  • execution callbacks broadcast to every connected client
  • no per-recipient ACL check is applied before sending action metadata or output

I validated the issue using:

  • an admin user with full ACLs
  • an alice user with no ACLs
  • a protected action that outputs TOPSECRET=alpha-bravo-charlie

Despite having no relevant ACLs, alice still receives the ExecutionFinished event for the privileged action, including the protected output.

PoC

Tested version:

  - 3000.10.2
  1. Fetch and check out 3000.10.2 in a clean worktree:
bash
  git -C OliveTin fetch origin tag 3000.10.2
  git -C OliveTin worktree add /home/kali/CVE/OliveTin-3000.10.2 3000.10.2
  1. Copy the PoC test into the clean tree:
bash
  cp OliveTin/service/internal/api/event_stream_leak_test.go \
    OliveTin-3000.10.2/service/internal/api/
  1. Run the targeted PoC test:
bash
  cd OliveTin-3000.10.2/service
  go test ./internal/api -run TestEventStreamLeaksUnauthorizedExecutionOutput -count=1 -timeout 30s -v
  1. Optional: save validation output:
bash
  go test ./internal/api -run TestEventStreamLeaksUnauthorizedExecutionOutput -count=1 -timeout 30s -v \
    2>&1 | tee /tmp/olivetin_eventstream_3000.10.2.log

Observed validation output:

bash
  === RUN   TestEventStreamLeaksUnauthorizedExecutionOutput
  time="2026-03-01T04:44:59-05:00" level=info msg="Action requested" actionTitle=secret-action tags="[]"
  time="2026-03-01T04:44:59-05:00" level=info msg="Action parse args - Before" actionTitle=secret-action cmd="echo 'TOPSECRET=alpha-bravo-charlie'"
  time="2026-03-01T04:44:59-05:00" level=info msg="Action parse args - After" actionTitle=secret-action cmd="echo 'TOPSECRET=alpha-bravo-charlie'"
  time="2026-03-01T04:44:59-05:00" level=info msg="Action started" actionTitle=secret-action timeout=1
  time="2026-03-01T04:44:59-05:00" level=info msg="Action finished" actionTitle=secret-action exit=0 outputLength=30 timedOut=false
  --- PASS: TestEventStreamLeaksUnauthorizedExecutionOutput (0.00s)
  PASS
  ok      github.com/OliveTin/OliveTin/internal/api       0.025s

What this proves:

  • admin can execute the protected action
  • alice has no ACLs
  • alice still receives the streamed completion event for the protected action
  • protected action output is exposed through the event stream

Impact

This is an authenticated broken access control / information disclosure vulnerability.

A low-privileged authenticated user can subscribe to EventStream and receive:

  • action execution metadata
  • execution tracking IDs
  • initiating username
  • live output chunks
  • final command output

Who is impacted:

  • multi-user OliveTin deployments
  • environments where privileged actions produce secrets, tokens, internal system details, or other sensitive operational output
  • deployments where lower-privileged authenticated users can access the dashboard and subscribe to live events

This bypasses intended per-action log/view restrictions for protected actions.

Technical ContextAI

Information disclosure occurs when an application inadvertently reveals sensitive data to unauthorized actors through error messages, logs, or improper access controls.

RemediationAI

Implement proper access controls. Sanitize error messages in production. Review logging practices to avoid capturing sensitive data.

CVE-2026-27626 CRITICAL POC
9.9 Feb 25

OS command injection in OliveTin web shell interface through version 3000.10.0. OliveTin provides web-based access to pr

CVE-2026-30223 HIGH POC
8.8 Mar 06

OliveTin gives access to predefined shell commands from a web interface. [CVSS 8.8 HIGH]

CVE-2026-31817 HIGH POC
8.5 Mar 10

Arbitrary file write in OliveTin prior to 3000.11.2 allows authenticated attackers to write files to arbitrary filesyste

CVE-2026-67437 HIGH POC
7.5 Jul 29

Memory-exhaustion denial of service in OliveTin (versions 3000.0.0 through 3000.16.x) allows a remote unauthenticated at

CVE-2026-28342 HIGH POC
7.5 Mar 05

OliveTin versions prior to 3000.10.2 are vulnerable to unauthenticated denial of service through the PasswordHash API en

CVE-2026-28789 HIGH POC
7.5 Mar 05

OliveTin versions prior to 3000.10.3 are vulnerable to unauthenticated denial-of-service attacks when OAuth2 authenticat

CVE-2026-28790 HIGH POC
7.5 Mar 05

OliveTin versions prior to 3000.11.0 suffer from broken access control allowing unauthenticated users to invoke the Kill

CVE-2025-50946 MEDIUM POC
6.5 Aug 13

OS Command Injection in Olivetin 2025.4.22 Custom Themes via the ParseRequestURI function in service/internal/executor/a

CVE-2026-67438 MEDIUM POC
6.6 Jul 29

OS command injection in OliveTin versions 3000.2.0 through 3000.16.x allows an authenticated user to execute arbitrary s

CVE-2026-30233 MEDIUM POC
6.5 Mar 06

OliveTin prior to version 3000.11.1 fails to enforce view permission checks on dashboard and API endpoints, allowing aut

CVE-2026-30224 MEDIUM POC
5.4 Mar 06

OliveTin prior to version 3000.11.1 fails to invalidate server-side sessions upon user logout, allowing attackers with a

CVE-2026-30225 MEDIUM POC
5.3 Mar 06

OliveTin versions prior to 3000.11.1 contain an authentication bypass in RestartAction that allows authenticated users t

Vendor StatusVendor

SUSE

Severity: Medium

Share

CVE-2026-32102 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy