Your message dated Tue, 1 Sep 2026 15:38:06 +0200
with message-id <[email protected]>
and subject line Re: Bug#1146400: iodine: root command injection via 
iodine-client-start config file
has caused the Debian Bug report #1146400,
regarding iodine: root command injection via iodine-client-start config file
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1146400: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1146400
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: iodine
Version: 0.7.0-11
Severity: grave
Tags: security

The `iodine-client-start` script in the iodine package sources
`/etc/default/iodine-client` as root and then uses values from it as shell
commands without quoting.

The relevant lines:

```bash
line 156:  . \${iodine_client_rc}
line 269:  ifup interface || {continue_on_error}
line 334:  ip -4 route add \${n}/32 via router || {continue_on_error}
line 346:  iodine \({iodine_opts} -P "\){passwd}" "subdomain" ||
{continue_on_error}
line 372: \${continue_on_error}
line 393:  ip -4 route add default via \({tunnel_remote}
\vert{}\vert{}\){continue_on_error}
```

Because `continue_on_error` is executed as a command, setting it in the
config to anything like `id` runs it as root when a previous command fails.
Other variables like `interface`, `testhost`, `router`, and `mtu` are also
unquoted, so a malformed config can break commands or inject extra
arguments.

PoC:

Add this to `/etc/default/iodine-client`:

```bash
continue_on_error='id'
```

Then run:

```bash
sudo iodine-client-start
```

When any command fails, `id` runs as root.

This means anyone who can write to `/etc/default/iodine-client` can
escalate to root. The fix is to quote all variables and not use
`continue_on_error` as a command.

I am reporting this privately first and can wait 60–90 days before
publishing details. If Debian confirms and assigns a CVE, I would like it
credited to Badr Azeez.

Thanks,
Badr Azeez

--- End Message ---
--- Begin Message ---
On Tue, Sep 01, 2026 at 02:09:39PM +0300, Badr Azeez wrote:
> Package: iodine
> Version: 0.7.0-11
> Severity: grave
> Tags: security
> 
> The `iodine-client-start` script in the iodine package sources
> `/etc/default/iodine-client` as root and then uses values from it as shell
> commands without quoting.

There is no privilege escalation. /e/d/iodine-client is correctly 
writable only by root:

# ls -la /etc/default/iodine
-rw------- 1 root root 137 Sep  1 13:32 /etc/default/iodine

Thus any "escalation" would be from root to root, and thus not 
crossing a security boundary.


> [..]

> I am reporting this privately first [..]

I doubt you know what you are doing when you mail the Debian BTS.

Closing.
Chris

--- End Message ---

Reply via email to