Cloudanix VulnDB

CVE-2017-11747

Medium · 5.5

CVSS

5.5

EPSS

0.3%

Published

Jul 30, 2017

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A helper program leaves a file that ordinary users can change, which can make a privileged cleanup script stop the wrong processes and interrupt running services.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Low
Impact
Denial Of Service
Component
Application
Class
Privilege Escalation
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

The flaw causes Tinyproxy to create its PID file after dropping root privileges, allowing any local user with access to the non-root account to overwrite the PID value; a subsequent root-level script that executes kill on the contents of that file will then terminate an arbitrary process chosen by the attacker.

Why it matters to the business

Attackers who already have a foothold on the system can cause targeted denial-of-service against critical services or processes, leading to application outages or loss of availability without requiring further privilege escalation.

How an attack unfolds

An attacker first obtains access to the non-root account that Tinyproxy runs under, overwrites the PID stored in /run/tinyproxy/tinyproxy.pid with the identifier of a desired target process, and then waits for or triggers the root script that blindly kills whatever PID is listed in the file.

How to fix it

Upgrade kubeflow-centraldashboard (Chainguard) and kubeflow-centraldashboard (Wolfi) to version 1.8.0-r5 or later; alternatively, move PID-file creation before privilege drop and ensure the file is writable only by root.

How to confirm the fix worked

Confirm the installed package version matches or exceeds the fixed releases; inspect Tinyproxy startup logic to verify the PID file is created while still running as root and that its permissions prevent modification by the service account.

Typical attack path

  1. Obtain local access to the non-root Tinyproxy account
  2. Overwrite /run/tinyproxy/tinyproxy.pid with the PID of a target process
  3. Trigger or wait for the root-level kill script that reads the PID file

How to detect it

Search system and container logs for writes to the Tinyproxy PID path by non-root users, correlate unexpected process terminations with access timestamps on that file, and review audit logs for executions of kill commands whose arguments originate from the PID file.

  • /run/tinyproxy/tinyproxy.pid
  • kill `cat /run/tinyproxy/tinyproxy.pid`

What your security team should do

  • Apply the 1.8.0-r5 or newer package updates to all affected kubeflow-centraldashboard deployments without delay
  • Audit all PID-file and kill-script patterns across container images for similar ordering or permission issues
  • Restrict the Tinyproxy service account to the minimum required permissions and monitor for unexpected file modifications under /run

The record

main.c in Tinyproxy 1.8.4 and earlier creates a /run/tinyproxy/tinyproxy.pid file after dropping privileges to a non-root account, which might allow local users to kill arbitrary processes by leveraging access to this non-root account for tinyproxy.pid modification before a root script executes a "kill `cat /run/tinyproxy/tinyproxy.pid`" command.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 tinyproxy 0 1.10.0-1
Debian:12 tinyproxy 0 1.10.0-1
Debian:13 tinyproxy 0 1.10.0-1
Debian:8 tinyproxy 0 1.8.3-3+deb8u1
SUSE:Package Hub 15 SP5 tinyproxy 0 1.11.2-bp155.3.3.1
Ubuntu:Pro:14.04:LTS tinyproxy 0 1.8.3-3ubuntu14.04.1~esm1
Ubuntu:Pro:16.04:LTS tinyproxy 0 1.8.3-3ubuntu16.04.1~esm1
Ubuntu:Pro:18.04:LTS tinyproxy 0 1.8.4-5ubuntu0.1~esm1
openSUSE:Leap 15.5 tinyproxy 0 1.11.2-bp155.3.3.1
openSUSE:Tumbleweed tinyproxy 0 1.11.0-1.3

Related vulnerabilities