[Bug 2127080] Re: [SRU] sudo-rs does not accept escaped characters in command-line arguments

Launchpad Bug Tracker 2127080 at bugs.launchpad.net
Mon Oct 13 12:48:37 UTC 2025


** Merge proposal linked:
   https://code.launchpad.net/~bamf0/ubuntu/+source/rust-sudo-rs/+git/rust-sudo-rs/+merge/494283

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rust-sudo-rs in Ubuntu.
https://bugs.launchpad.net/bugs/2127080

Title:
  [SRU] sudo-rs does not accept escaped characters in command-line
  arguments

Status in rust-sudo-rs package in Ubuntu:
  In Progress

Bug description:
  [ Impact ]

  The bug prevents sudoers files from including an escaped equal sign in
  command arguments. Example:

  ```
  # This is currently allowed
  Cmd_Alias FOO_CMD = /bin/foo --bar=1
  # ...this gives a syntax error
  Cmd_Alias BAR_CMD = /bin/foo --bar\=1
  ```

  The behavior is a regression following the previous fix in version
  0.2.8-1ubuntu4, which allowed un-escaped equal signs.

  This upload fixes the issue by both setting '=' as an escaped symbol
  in commands and adding it as an accepted un-escaped symbol.

  [ Test Plan ]

  1) Create a file called 'test' with the following contents:
  ```
  Cmd_Alias FOO_CMD = /bin/foo --bar=1
  Cmd_Alias BAR_CMD = /bin/foo --bar\=1
  ```
  2) Run visudo on 'test':
  ```shell
  visudo -c -f test
  ```
  3) File should parse successfully

  [ Where problems could occur ]

  Potential problems would arise in the parsing of commands in sudoers files, in  cases where an escaped equal sign is considered illegal syntax.
  Problems could also include unpredicted side effects in command parsing when "\=" is used erroneously.

  [ Original description ]
  In rust-sudo-rs 0.2.8-1ubuntu4 a fix was introduced that allowed for '=' to be used in commands as such:

  Cmd_Alias FOO_CMD = /bin/foo --bar=1

  However, this fix also made the escaped equivalence generate an
  "illegal escape sequence error":

  Cmd_Alias BAR_CMD = /bin/foo --bar\=1

  -------------------------------------

  Steps to reproduce:

  1. Create a file called "test" with the following content:

  Cmd_Alias FOO_CMD = /bin/foo --bar=1
  Cmd_Alias BAR_CMD = /bin/foo --bar\=1

  2. Run visudo on the file:

  $ visudo -c -f test

  3. An error is given:

  test:2:36: syntax error: illegal escape sequence
  Cmd_Alias BAR_CMD = /bin/foo --bar\=1
                                     ^
  visudo: invalid sudoers file

  -------------------------------------

  What I expect to happen:

  The sudoers file is parsed correctly without an error.

  Release: Ubunutu 25.10
  sudo-rs version: 0.2.8-1ubuntu5

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rust-sudo-rs/+bug/2127080/+subscriptions




More information about the foundations-bugs mailing list