FYI, I clarified the description that the issue is for 'aa-exec', not
everything.

** Description changed:

- Somewhere between 3.13 and 4.4, the scrubbing behavior of ix changed.
- For example, on Ubuntu 12.04 and 14.04 we have:
+ Somewhere between 3.13 and 4.4, the scrubbing behavior of ix for aa-exec
+ changed. For example, on Ubuntu 12.04 and 14.04 we have:
  
  * ux does not scrub
  * Ux does scrub
  * ix does not scrub
  
  but in 16.04 and later we have:
  
  * ux does not scrub
  * Ux does scrub
  * ix does scrub # WRONG
  
  I discussed this with jjohansen some time ago (just now filing the bug)
- and we concluded that ix shouldn't scrub and the behavior change was
- unintentional, but that this needed to be investigated.
+ and we concluded that ix shouldn't scrub and the behavior change for aa-
+ exec was unintentional, but that this needed to be investigated.
  
  Attached is a reproducer:
  
  $ tar -zxvf ./reproducer.tar.gz
  reproducer/
  reproducer/test.sh
  reproducer/driver.sh
  reproducer/profile
  
  $ cd reproducer && ./driver.sh
  Loading apparmor profiles...
  ...
  
  ix should scrub: FAIL: ix scrubs
  Ux should scrub: PASS
  ux should not scrub: PASS
  
  FAIL
  [1]
  
  The separate reproducer is:
  
  $ cat ./profile
  #include <tunables/global>
  
  profile aaexec-ix {
    #include <abstractions/base>
    #include <abstractions/bash>
    #include <abstractions/perl>
  
    /bin/dash ixr,
    /bin/grep ixr,
    /**/test.sh r,
  
    @{PROC}/*/attr/exec rw,
    change_profile -> unconfined,
  
    /usr/{,s}bin/aa-exec ixr,
  }
  
  $ cat ./test.sh
  #!/bin/sh
  set -e
  
  export LD_LIBRARY_PATH="foo"
  aa-exec -p unconfined -- /bin/dash -c 'env' | grep LD_
  
- 
  $ sudo apparmor_parser -r ./profile
  $ export LD_LIBRARY_PATH=foo
  
  Then on (at least) 4.4 and higher:
  $ aa-exec -p aaexec-ix -- ./test.sh | grep foo
  [1]
  $
  
  and on (at least) 3.13 and below:
  $ aa-exec -p aaexec-ix -- ./test.sh | grep foo
  LD_LIBRARY_PATH=foo
  $
  
  Note: I also tested the perl aa-exec on newer releases and it shows the
  same ix scrubbing behavior as the binutils aa-exec.

** Description changed:

  Somewhere between 3.13 and 4.4, the scrubbing behavior of ix for aa-exec
- changed. For example, on Ubuntu 12.04 and 14.04 we have:
+ changed. Non-aa-exec cases work correctly everywhere (no scrubbing). For
+ example, on Ubuntu 12.04 and 14.04 we have:
  
  * ux does not scrub
  * Ux does scrub
  * ix does not scrub
  
  but in 16.04 and later we have:
  
  * ux does not scrub
  * Ux does scrub
  * ix does scrub # WRONG
  
  I discussed this with jjohansen some time ago (just now filing the bug)
  and we concluded that ix shouldn't scrub and the behavior change for aa-
- exec was unintentional, but that this needed to be investigated.
+ exec with ix was unintentional, but that this needed to be investigated.
  
  Attached is a reproducer:
  
  $ tar -zxvf ./reproducer.tar.gz
  reproducer/
  reproducer/test.sh
  reproducer/driver.sh
  reproducer/profile
  
  $ cd reproducer && ./driver.sh
  Loading apparmor profiles...
  ...
  
  ix should scrub: FAIL: ix scrubs
  Ux should scrub: PASS
  ux should not scrub: PASS
  
  FAIL
  [1]
  
  The separate reproducer is:
  
  $ cat ./profile
  #include <tunables/global>
  
  profile aaexec-ix {
    #include <abstractions/base>
    #include <abstractions/bash>
    #include <abstractions/perl>
  
    /bin/dash ixr,
    /bin/grep ixr,
    /**/test.sh r,
  
    @{PROC}/*/attr/exec rw,
    change_profile -> unconfined,
  
    /usr/{,s}bin/aa-exec ixr,
  }
  
  $ cat ./test.sh
  #!/bin/sh
  set -e
  
  export LD_LIBRARY_PATH="foo"
  aa-exec -p unconfined -- /bin/dash -c 'env' | grep LD_
  
  $ sudo apparmor_parser -r ./profile
  $ export LD_LIBRARY_PATH=foo
  
  Then on (at least) 4.4 and higher:
  $ aa-exec -p aaexec-ix -- ./test.sh | grep foo
  [1]
  $
  
  and on (at least) 3.13 and below:
  $ aa-exec -p aaexec-ix -- ./test.sh | grep foo
  LD_LIBRARY_PATH=foo
  $
  
  Note: I also tested the perl aa-exec on newer releases and it shows the
  same ix scrubbing behavior as the binutils aa-exec.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1759346

Title:
  ix scrubs environment when it shouldn't when going through aa-exec

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/1759346/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to