Saturday, October 8, 2016

The LAVA Synthetic Bug Corpora

I'm planning a longer post discussing how we evaluated the LAVA bug injection system, but since we've gotten approval to release the test corpora I wanted to make them available right away.

The corpora described in the paper, LAVA-1 and LAVA-M, can be downloaded here:

http://panda.moyix.net/~moyix/lava_corpus.tar.xz (101M)

Quoting from the included README:

This distribution contains the automatically generated bug corpora used in the paper, "LAVA: Large-scale Automated Vulnerability Addition".

LAVA-1 is a corpus consisting of 69 versions of the "file" utility, each of which has had a single bug injected into it. Each bug is a named branch in a git repository. The triggering input can be found in the file named CRASH_INPUT. To run the validation, you can use validate.sh, which builds each buggy version of file and evaluates it on the corresponding triggering input.

LAVA-M is a corpus consisting of four GNU coreutils programs (base64, md5sum, uniq, and who), each of which has had a large number of bugs added. Each injected, validated bug is listed in the validated_bugs file, and the corresponding triggering inputs can be found in the inputs subdirectory. To run the validation, you can use the validate.sh script, which builds the buggy utility and evaluates it on triggering and non-triggering inputs.

For both corpora, the "backtraces" subdirectory contains the output of gdb's backtrace command for each bug.

Enjoy!

41 comments:

Unknown said...

Hey, I download the LAVA corpora, and I run the script validate.sh and get the result from the ubuntu terminal as following:
----------------------
Building buggy base64...
Checking if buggy base64 succeeds on non-trigger input...
Success: base64 -d inputs/utmp.b64 returned 127
Validating bugs...
Validated 0 / 44 bugs
You can see validated.txt for the exit code of each buggy version.
--------------------------
which means I don't succeed injecting bugs. One of the codes in validate.sh is "./configure --prefix=`pwd`/lava-install LIBS="-lacl" &> /dev/null", but I cannot find the directory "lava-install".
So how can I solve the problem? Thanks very much.

Brendan Dolan-Gavitt said...

Hi,

127 is the error code bash returns when the program can't be found. So it sounds like some part of the compilation process is failing and none of the coreutils programs have actually been built. I'd recommend running the compile step by hand to see what's going wrong, and then fixing that.

Unknown said...

Mr Dolan-Gavitt,thank you very much. I change the script validate.sh and remove the "&>/dev/null", and I build the program successfully.
The changed script is as following:
--------------------------------------------------------
#!/bin/bash
PROG="base64"
PROGOPT="-d"
INPUT_PATTERN="inputs/utmp-fuzzed-%s.b64"
INPUT_CLEAN="inputs/utmp.b64"
echo "Building buggy ${PROG}..."
cd coreutils-8.24-lava-safe
make clean
./configure --prefix=/home/wendy/lava_corpus/LAVA-M/base64/coreutils-8.24-lava-safe/lava-install LIBS="-lacl"
make
make install
cd ..
./coreutils-8.24-lava-safe/lava-install/bin/${PROG} ${PROGOPT} ${INPUT_CLEAN}
rv=$?
if [ $rv -lt 128 ]; then
echo "Success: ${PROG} ${PROGOPT} ${INPUT_CLEAN} returned $rv"
else
echo "ERROR: ${PROG} ${PROGOPT} ${INPUT_CLEAN} returned $rv"
fi
echo "Validating bugs..."
cat validated_bugs | while read line ; do
INPUT_FUZZ=$(printf "$INPUT_PATTERN" $line)
{ ./coreutils-8.24-lava-safe/lava-install/bin/${PROG} ${PROGOPT} ${INPUT_FUZZ} ; }
echo $line $?
done > validated2.txt
awk 'BEGIN {valid = 0} $2 > 128 { valid += 1 } END { print "Validated valid=",valid, "/
", NR, "bugs" }' validated2.txt
echo "You can see validated2.txt for the exit code of each buggy version."
--------------------------------------------------------------------------------

Lingyun Situ's Blog said...

Hi,

There's a CRASH_INPUT in the the command in validate.sh

{ ${d}/lava-install/bin/file ${d}/CRASH_INPUT ; } &> /dev/null

But, I do not find the CRASH_INPUT dir.

Thanks



Unknown said...

Hi,

I faced exactly the same terminal output as 0/44 bugs validated for base64 in lava-M corpus.

I tried with the new posted script without hte "&>/dev/null", i actually copied the posted script in a new file. However it gave an error that says:

configure: error: in `/home/mark_arsanious/lava_corpus/LAVA-M/base64/coreutils-8.24-lava-safe':
configure: error: C compiler cannot create executables
See `config.log' for more details

and a fatal error:

./lib/acl-internal.h:27:11: fatal error: 'sys/acl.h' file not found
# include
^


Any clue?

xct said...

@Mark Arsanious

you are probably missing libacl1-dev.

pepper said...

I have trouble confirming all the vulnerable input vectors. What is the toolchain and target architecture that this is supposed to work with?

A recent Ubuntu will be unable to compile due to gnulib changes...porting the source is easy but the validate scripts will only confirm a small fraction of bugs. Its better with Ubuntu 16.04 but still, several hundret bugs could not be confirmed by the validation script. Crosscompiling for i386 also didn't seem to help..

Kristian said...

I get following error when trying to compile base64:

lib/freadseek.c: In function 'freadptrinc':
lib/freadseek.c:68:3: error: #error "Please port gnulib freadseek.c to your platform! Look at the definition of getc, getc_unlocked on your system, then report this to bug-gnulib."
68 | #error "Please port gnulib freadseek.c to your platform! Look at the definition of getc, getc_unlocked on your system, then report this to bug-gnulib."

hookstefan said...

buy assignments online
Task help Service is a dug in and prominent name in giving stunning on the web task Help administrations to understudies.

hrroman said...

If you are stuck with your marketing assignment then in this case you can opt for our Marketing Assignments. we provide the bestOnline marketing expert.We also provide Sales and Promotion help for students across the globe. for more information contact us +16692714848.

Jenifer said...

Are you in need of chemistry assignment help service? Then get it from ABC Assignment Help, as they have a pool of specialist’s team from various universities in almost every field. They are enough proficient in writing any kind of assignment according to the requirements of students.

Assignment help said...

Myassignmenthelp offers customized and unique assignment help through actual professionals. Our team of PhD. certified experts strive to meet students’ expectations along with University guidelines to ensure high scoring assignments every time. Along with adept writing help we offer professional proofreading, editing, free samples and exam help to assist students in achieving their career aspirations.

Max Willor said...

That’s What I Call An Excellent Post. This Is So Comprehensive That I Do Not Have To Hop Anywhere Else For The Information. Great Work, Am Following Your Posts! At MyAssignmentHelpAu, We Offer Pocket-Friendly Services And Write Tailored Assignments. Students Trust Our Assignment Help in Australia. To Get Authentic Assignments Within Deadlines, Hire Us Today!

herryjhon said...

Awesome Blog, Thanks for providing important informations there.Need to book tickets at last minute but don’t have time to go through the traditional time-consuming ways, just Visit at Emirates Airlines Phone Number . and our experts will book tickets for you in no time even at discounted prices. It’s like a double bonus!

ROHIT RAJWANI said...

Putlocker may be a seamless portal for television, series, movies, songs, etc. for free. it's not mainly for any film or language, from Hollywood to Bollywood, one can have access to each possible movie. In fact, unlike other portals who operate completely illegally, Putlocker has an official site named Putlocker.com that a broad base of individuals is mad.

For the official content recorded, over 1.6 million people worldwide made access to it portal on a per-day basis. because of the piracy issues, it faced a report by motion picture Association of America, which led to its pack up by the united kingdom court Order. it had been considered together of the highest 250 sites visited by the people worldwide. Although, thanks to its massive fan base, Putlockers remains operated under different proxy websites.

herryjhon said...

Get an exciting offer by searching our website and Want to explore the world, but tight-budget kills those dream of traveling. Not anymore, jump over the hurdle name budget and touch the finish line where your traveling dream starts with our great discounts and deals on air-tickets at American Airlines Low Fare Calendar and If your travel dates rescheduled. You can check the full month fare and purchase the flight tickets on the most auspicious day.

herryjhon said...

If you are planning to cancel or buy Turkish Flight tickets then Turkish Airlines Toll Free Number can help you out. You will get round the clock online customer support, various kinds of premium services, and amazing discounts from Turkish Airlines and also get best resolution for cancel and refund.

Linnea Shira said...

Call Spirit Airlines Phone Number for your suitable trip.

Linnea Shira said...

Southwest Contact Number provide one of the excellent offers for you the right services that include discounts so that you can be updated when you are traveling from one place to another. Finding extra services like eating and sleeping comfort in flight.

james jobs said...

I recently booked my ticket through American Phone Number. And let me tell you that it was a pleasant flight to fly with American Airlines. Talking on American Phone Number provided me with the necessary information to cancel the ticket. Look forward to flying with them again!

james jobs said...

I must appreciate your information and your way of presenting it in such simple yet effective words. There is a reason that I really like to come to your website, whenever I look for some important information. Well, hey there! I work with Southwest Airlines Cancellation helpdesk, if you want to cancel your flight tickets anytime, then contact me to get your work done instantly.

james jobs said...


I am a family person and we all know that saving money for a family person is very difficult. One day I was searching some travelling sites then I got Lufthansa Airlines. When I dialed their Lufthansa Airlines Phone , I got amazing deals and discounted tickets even with best facilities. So without thinking too much I booked my tickets and I also enjoyed travelling with them.

james jobs said...

I am a traveller and I like to explore new places, I heard about Southwest Airlines a lot. So when I dialed Southwest Customer Service I got the flight tickets with best deals and offers which maybe I cannot get from anywhere. I want to travel with them next time too.

herryjhon said...

Get an exciting offer by searching our website and Want to explore the world, but tight-budget kills those dream of traveling. Not anymore, jump over the hurdle name budget and touch the finish line where your traveling dream starts with our great discounts and deals on air-tickets at American Airlines Low Fare Calendar and If your travel dates rescheduled. You can check the full month fare and purchase the flight tickets on the most auspicious day.

james jobs said...

What can I say? The experience of travelling with Lufthansa Airlines was very fabulous. I got my every solution here. When I connected with experts by dialling Lufthansa Airlines Customer Service then finally I got the flight tickets with best facilities within my budget. I would like to advice everyone to travel with them.

james jobs said...

I tried to avail the services at United Airlines and also got the best experience. With the easy procedures of cancelling a flight ticket when talking United Airlines cancellation number, I got to travel and enjoy myself to make my trip hassle free. Thank you for this experience!

james jobs said...

We can tell you the availability of flight tickets, flight ticket fares and more, all of which come under the process of handling the reservation desk. Call us at Southwest Airlines Customer Service and get all the help you need for inquiries.

herryjhon said...

Great post. Thanks for your blog it is very helpful. You have a dream trip but don’t have exact dates for your cherished trip yet? Here we are equipped with United Airlines Fare Calendars which can instantly show you the cheapest days and nights to fly to hundreds of destinations around the world.


Airlines booking said...

Our team ensures you that you will get the best yet budgeted flight tickets from us. You need to quickly call at Air China Phone Number helpline toll free number and seek help for booking tickets. And not only that we can get all kinds of assistance and guidance on any of your issues regarding your air travel.

Airlines booking said...

If you have left something at the airport, please contact our lost and found via Southwest Phone Number. Also, provide detailed information regarding the item like model/serial number, brand, size, colour, etc. our staff will make every effort to locate your item and return it to you.

Airlines booking said...

Traveling is an experience that is mandatory for everyone to enjoy as many times as you can. The team at Lufthansa Airlines Phone Number believes that one must take this experience frequently. And to make this dream possible the airlines not only offers but amazing services that help to make travel comfortable for all.

Airlines booking said...

Book your flights and plane tickets with Japan Airlines by just calling at Japan Airlines Phone Number at the most affordable rates. Book the most comfortable and stress relieving journey with us that will keep your excitement of reaching the destination alive and constant. Don’t miss the opportunity of flying with us. Book soon!

Airlines booking said...

Many of the fliers around the world face don’t have enough time to spend hours on the internet to find the right for their itinerary. To solve these problems of fliers, our team of experts provides reliable services and assistance through Hawaiian Airlines Contact Number. So, none of any fliers could face any trouble to reach their destination.

gfhgg said...

Xbox One Download Free Redeem Codes. xbox one Free Download Code

Geremy said...

To be honest I found very helpful information your blog thanks for providing us such blog Dream11 Prediction

Unknown said...

I have shared this link with others please continue posting such information. As a student you have helped me with quality essays

debora zanini said...

A well written Content provided by you. Your writing skills are perfect southwest phone number. i hope so you will write more content like this but if you are searching for flights then contact us or visit our website.

Thomas william said...

I appericiate your comments i want to share that Get all data about the flight booking at southwest airlines phone number, the brisk and proficient helpline helping a large number of travelers.

Ivan said...

NBA 2K20 VC FREE PS4

Roku TV Account Setup said...

To activate the device, you need to take note of the steps below:

1.First of all, on your smartphone you have to open a web browser
2.Hover to the Roku.com/link website and enter the activation code
3.The activation code actually appears on the TV display at the time you turn it on
4.Once the code is given, the device shall get activated in the process

Now is the juncture to create a new Roku account as we had seen above. The Roku activation process is easy in comparison with the other devices
If you have any queries with the Roku TV account and its activation process, call the support team at +1-844-839-1180 and get the issues fixed on time.

Monnika Jacob said...

LAVA bug injection system was new concept to me and you provided well information about this concept here. However, I am going to spread this on Essay Writing Services, where others will have the opportunity to learn more about it.