http://www.perlmonks.org?node_id=1058099


in reply to Re: suid Perl with App::PAR::Packer (pp)
in thread suid Perl with App::PAR::Packer (pp)

Well. I got it to work by slightly changing the build process and by further alterations to the C source files of the App::PAR::Packer distribution. Since the changes were across multiple files and I can't exactly zip them up and share them here, please just contact me using this link and I'll give you the installable source and instructions if you're interested. http://www.atrixnet.com/contact/

Victory is mine! (And yours too, if you want a copy)

Aside: I wonder why nobody front-paged this after such an elaborate write-up?

Tommy
A mistake can be valuable or costly, depending on how faithfully you pursue correction
  • Comment on Re^2: suid Perl with App::PAR::Packer (pp)

Replies are listed 'Best First'.
Re^3: suid Perl with App::PAR::Packer (pp)
by Anonymous Monk on Oct 13, 2013 at 20:05 UTC

    Since the changes were across multiple files and I can't exactly zip them up and share them here,

    Do a make realclean in respective directories and then  diff -ruN orig-pars-dists new-pars-dists

      Dear, Anonymous Monk. I did what you asked and put the diff up as a gist on github.

      It's here: https://gist.github.com/tommybutler/6970628

      Please read the notes on the patch before using it, because it notes that the build helper script had to be changed in order to make it work (by removing the --clean option when calling pp). I added crypto filters to the compiled executable for better security, given that it is suid. I also put into the BEGIN block of the script an instant-exit if $< isn't my uid.

      The updated (fixed) build helper script:

      #!/bin/bash sudo rm -rf /tmp/par* && sudo rm -rf suid_script && pp --output=suid_script -f Crypto -F Crypto -M Filter::Crypto::Decrypt + suid_script.pl && sudo chown root:root suid_script && sudo chmod +x suid_script && sudo chmod u+s suid_script && stat suid_script && rm -rf /tmp/par*

       

      Tommy
      A mistake can be valuable or costly, depending on how faithfully you pursue correction