Hello community,

here is the log from the commit of package afl for openSUSE:Factory checked in 
at 2015-05-06 07:48:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/afl (Old)
 and      /work/SRC/openSUSE:Factory/.afl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "afl"

Changes:
--------
--- /work/SRC/openSUSE:Factory/afl/afl.changes  2015-04-22 01:18:45.000000000 
+0200
+++ /work/SRC/openSUSE:Factory/.afl.new/afl.changes     2015-05-06 
07:49:04.000000000 +0200
@@ -1,0 +2,10 @@
+Mon Apr 27 08:45:05 UTC 2015 - astie...@suse.com
+
+- afl 1.73b:
+  - Fixed a bug in effector maps that could sometimes cause more
+    fuzzing than necessary, or SEGV
+- includes changes from 1.72b:
+  - Fixed a glitch in non-x86 install
+  - Added a minor safeguard to llvm_mode Makefile
+
+-------------------------------------------------------------------

Old:
----
  afl-1.71b.tgz

New:
----
  afl-1.73b.tgz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ afl.spec ++++++
--- /var/tmp/diff_new_pack.4FczG3/_old  2015-05-06 07:49:05.000000000 +0200
+++ /var/tmp/diff_new_pack.4FczG3/_new  2015-05-06 07:49:05.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           afl
-Version:        1.71b
+Version:        1.73b
 Release:        0
 Summary:        American fuzzy lop is a security-oriented fuzzer
 License:        Apache-2.0

++++++ afl-1.71b.tgz -> afl-1.73b.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/Makefile new/afl-1.73b/Makefile
--- old/afl-1.71b/Makefile      2015-04-20 03:17:54.000000000 +0200
+++ new/afl-1.73b/Makefile      2015-04-27 08:17:22.000000000 +0200
@@ -14,7 +14,7 @@
 #
 
 PROGNAME    = afl
-VERSION     = 1.71b
+VERSION     = 1.73b
 
 PREFIX     ?= /usr/local
 BIN_PATH    = $(PREFIX)/bin
@@ -108,11 +108,7 @@
        rm -rf out_dir qemu_mode/qemu-2.2.0
        $(MAKE) -C llvm_mode clean
 
-ifndef AFL_NOX86
 install: all
-else
-install: nox86
-endif
        mkdir -p -m 755 $${DESTDIR}$(BIN_PATH) $${DESTDIR}$(HELPER_PATH) 
$${DESTDIR}$(DOC_PATH) $${DESTDIR}$(MISC_PATH)
        rm -f $${DESTDIR}$(BIN_PATH)/afl-plot.sh
        install -m 755 afl-gcc afl-fuzz afl-showmap afl-plot afl-tmin afl-cmin 
afl-gotcpu afl-whatsup $${DESTDIR}$(BIN_PATH)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/afl-fuzz.c new/afl-1.73b/afl-fuzz.c
--- old/afl-1.71b/afl-fuzz.c    2015-04-20 03:39:02.000000000 +0200
+++ new/afl-1.73b/afl-fuzz.c    2015-04-27 08:15:10.000000000 +0200
@@ -4646,7 +4646,7 @@
 
     /* Let's consult the effector map... */
 
-    if (!*(u16*)(eff_map + EFF_APOS(i))) {
+    if (!eff_map[EFF_APOS(i)] && !eff_map[EFF_APOS(i + 1)]) {
       stage_max--;
       continue;
     }
@@ -4682,7 +4682,8 @@
   for (i = 0; i < len - 3; i++) {
 
     /* Let's consult the effector map... */
-    if (!*(u32*)(eff_map + EFF_APOS(i))) {
+    if (!eff_map[EFF_APOS(i)] && !eff_map[EFF_APOS(i + 1)] &&
+        !eff_map[EFF_APOS(i + 2)] && !eff_map[EFF_APOS(i + 3)]) {
       stage_max--;
       continue;
     }
@@ -4804,7 +4805,7 @@
 
     /* Let's consult the effector map... */
 
-    if (!*(u16*)(eff_map + EFF_APOS(i))) {
+    if (!eff_map[EFF_APOS(i)] && !eff_map[EFF_APOS(i + 1)]) {
       stage_max -= 4 * ARITH_MAX;
       continue;
     }
@@ -4895,7 +4896,8 @@
 
     /* Let's consult the effector map... */
 
-    if (!*(u32*)(eff_map + EFF_APOS(i))) {
+    if (!eff_map[EFF_APOS(i)] && !eff_map[EFF_APOS(i + 1)] &&
+        !eff_map[EFF_APOS(i + 2)] && !eff_map[EFF_APOS(i + 3)]) {
       stage_max -= 4 * ARITH_MAX;
       continue;
     }
@@ -5040,7 +5042,7 @@
 
     /* Let's consult the effector map... */
 
-    if (!*(u16*)(eff_map + EFF_APOS(i))) {
+    if (!eff_map[EFF_APOS(i)] && !eff_map[EFF_APOS(i + 1)]) {
       stage_max -= sizeof(interesting_16);
       continue;
     }
@@ -5113,7 +5115,8 @@
 
     /* Let's consult the effector map... */
 
-    if (!*(u32*)(eff_map + EFF_APOS(i))) {
+    if (!eff_map[EFF_APOS(i)] && !eff_map[EFF_APOS(i + 1)] &&
+        !eff_map[EFF_APOS(i + 2)] && !eff_map[EFF_APOS(i + 3)]) {
       stage_max -= sizeof(interesting_32) >> 1;
       continue;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/docs/ChangeLog new/afl-1.73b/docs/ChangeLog
--- old/afl-1.71b/docs/ChangeLog        2015-04-20 03:39:59.000000000 +0200
+++ new/afl-1.73b/docs/ChangeLog        2015-04-27 08:17:07.000000000 +0200
@@ -17,6 +17,24 @@
 to get on with the times.
 
 --------------
+Version 1.73b:
+--------------
+
+  - Fixed a pretty stupid bug in effector maps that could sometimes cause
+    AFL to fuzz slightly more than necessary; and in very rare circumstances,
+    could lead to SEGV if eff_map is aligned with page boundary and followed
+    by an unmapped page. Spotted by Jonathan Gray.
+
+--------------
+Version 1.72b:
+--------------
+
+  - Fixed a glitch in non-x86 install, spotted by Tobias Ospelt.
+
+  - Added a minor safeguard to llvm_mode Makefile following a report from
+    Kai Zhao.
+
+--------------
 Version 1.71b:
 --------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/docs/historical_notes.txt 
new/afl-1.73b/docs/historical_notes.txt
--- old/afl-1.71b/docs/historical_notes.txt     2015-04-11 19:54:48.000000000 
+0200
+++ new/afl-1.73b/docs/historical_notes.txt     2015-04-20 05:37:07.000000000 
+0200
@@ -52,18 +52,18 @@
 
 In the past six years or so, I've also seen a fair number of academic papers
 that dealt with smart fuzzing (focusing chiefly on symbolic execution) and a
-couple papers that discussed proof-of-concept application of genetic
-algorithms. I'm unconvinced how practical most of these experiments were;
-I suspect that many of them suffer from the bunny-the-fuzzer's curse of being
-cool on paper and in carefully designed experiments, but failing the ultimate
-test of being able to find new, worthwhile security bugs in otherwise
-well-fuzzed, real-world software.
-
-In some ways, the baseline that such solutions had to compete against was a lot
-more impressive than usually acknowledged, making it difficult to truly stand
-out; for a singular example, check out the work by Gynvael and Mateusz Jurczyk,
-applying "dumb" fuzzing to ffmpeg, a prominent and security-critical component
-of modern browsers and media players:
+couple papers that discussed proof-of-concept applications of genetic
+algorithms with the same goals in mind. I'm unconvinced how practical most of
+these experiments were; I suspect that many of them suffer from the
+bunny-the-fuzzer's curse of being cool on paper and in carefully designed
+experiments, but failing the ultimate test of being able to find new,
+worthwhile security bugs in otherwise well-fuzzed, real-world software.
+
+In some ways, the baseline that the "cool" solutions have to compete against is
+a lot more impressive than it may seem, making it difficult for competitors to
+stand out. For a singular example, check out the work by Gynvael and Mateusz
+Jurczyk, applying "dumb" fuzzing to ffmpeg, a prominent and security-critical
+component of modern browsers and media players:
 
   
http://googleonlinesecurity.blogspot.com/2014/01/ffmpeg-and-thousand-fixes.html
 
@@ -83,7 +83,8 @@
 
 1) Speed. It's genuinely hard to compete with brute force when your "smart"
    approach is resource-intensive. If your instrumentation makes it 10x more
-   likely to find a bug, but runs 100x slower, your users getting a bad deal.
+   likely to find a bug, but runs 100x slower, your users are getting a bad
+   deal.
 
    To avoid starting with a handicap, afl-fuzz is meant to let you fuzz most of
    the intended targets at roughly their native speed - so even if it doesn't
@@ -103,9 +104,8 @@
    Most of the approaches based on symbolic execution, taint tracking, or
    complex syntax-aware instrumentation are currently fairly unreliable with
    real-world targets. Perhaps more importantly, their failure modes can render
-   them strictly worse than "dumb" tools, and can be difficult for less
-   experienced users to notice and correct - giving them a false sense of
-   security.
+   them strictly worse than "dumb" tools, and such degradation can be difficult
+   for less experienced users to notice and correct.
 
    In contrast, afl-fuzz is designed to be rock solid, chiefly by keeping it
    simple. In fact, at its core, it's designed to be just a very good
@@ -130,7 +130,7 @@
    against resource-hungry or interaction-heavy tools, necessitating the
    creation of custom in-process fuzzers or the investment of massive CPU
    power (most of which is wasted on tasks not directly related to the code
-   we want to test).
+   we actually want to test).
 
    AFL tries to scratch this itch by allowing users to use more lightweight
    targets (e.g., standalone image parsing libraries) to create small
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/docs/sister_projects.txt 
new/afl-1.73b/docs/sister_projects.txt
--- old/afl-1.71b/docs/sister_projects.txt      2015-04-17 16:46:15.000000000 
+0200
+++ new/afl-1.73b/docs/sister_projects.txt      2015-04-22 20:10:08.000000000 
+0200
@@ -24,6 +24,13 @@
 
   https://github.com/floyd-fuh/afl-fuzzing-scripts/
 
+afl-crash-analyzer (Tobias Ospelt)
+----------------------------------
+
+  Makes it easier to navigate and annotate crashing test cases.
+
+  https://github.com/floyd-fuh/afl-crash-analyzer/
+
 Crashwalk (Ben Nagy)
 --------------------
 
@@ -98,6 +105,13 @@
 
   https://bitbucket.org/jwilk/python-afl
 
+Go-fuzz (Dmitry Vyukov)
+-----------------------
+
+  AFL-style guided fuzzing approach for Go targets:
+
+  https://github.com/dvyukov/go-fuzz
+
 -------------------------------
 Narrow-purpose or experimental:
 -------------------------------
@@ -129,3 +143,4 @@
   A simple SQL shell designed specifically for fuzzing the underlying library.
 
   http://www.sqlite.org/src/artifact/9e7e273da2030371
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/docs/technical_details.txt 
new/afl-1.73b/docs/technical_details.txt
--- old/afl-1.71b/docs/technical_details.txt    2015-04-19 08:49:44.000000000 
+0200
+++ new/afl-1.73b/docs/technical_details.txt    2015-04-20 05:40:05.000000000 
+0200
@@ -73,7 +73,7 @@
 
 The absence of simple saturating arithmetic opcodes on Intel CPUs means that
 the hit counters can sometimes wrap around to zero. Since this is a fairly
-unlikely and localized event, it's an acceptable performance trade-off.
+unlikely and localized event, it's seen as an acceptable performance trade-off.
 
 2) Detecting new behaviors
 --------------------------
@@ -93,8 +93,9 @@
 fragile global comparisons of complex execution traces, and while avoiding the
 scourge of path explosion.
 
-To illustrate, consider that the second trace shown below would be considered
-substantially new because of the presence of new tuples (CA, AE):
+To illustrate the properties of the algorithm, consider that the second trace
+shown below would be considered substantially new because of the presence of
+new tuples (CA, AE):
 
   #1: A -> B -> C -> D -> E
   #2: A -> B -> C -> A -> E
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/docs/vuln_samples/sqlite-bad-ptr2.sql 
new/afl-1.73b/docs/vuln_samples/sqlite-bad-ptr2.sql
--- old/afl-1.71b/docs/vuln_samples/sqlite-bad-ptr2.sql 1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.73b/docs/vuln_samples/sqlite-bad-ptr2.sql 2015-04-21 
16:41:34.000000000 +0200
@@ -0,0 +1 @@
+PRAGMA foreign_keys=1;CREATE TABLE t1("""0"PRIMARY KEy REFERENCES t1 ON DELETE 
SET NULL);REPLACE INTO t1 SELECT(0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/docs/vuln_samples/sqlite-heap-overflow.sql 
new/afl-1.73b/docs/vuln_samples/sqlite-heap-overflow.sql
--- old/afl-1.71b/docs/vuln_samples/sqlite-heap-overflow.sql    1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.73b/docs/vuln_samples/sqlite-heap-overflow.sql    2015-04-21 
08:05:28.000000000 +0200
@@ -0,0 +1,2 @@
+DROP TABLE IF EXISTS t;CREATE VIRTUAL TABLE t0 USING fts4();insert into t0 
select zeroblob(0);SAVEPOINT O;insert into t0
+select(0);SAVEPOINT E;insert into t0 SELECT 0 UNION SELECT 0'x'ORDER BY x;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/docs/vuln_samples/sqlite-null-ptr14.sql 
new/afl-1.73b/docs/vuln_samples/sqlite-null-ptr14.sql
--- old/afl-1.71b/docs/vuln_samples/sqlite-null-ptr14.sql       1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.73b/docs/vuln_samples/sqlite-null-ptr14.sql       2015-04-21 
08:02:52.000000000 +0200
@@ -0,0 +1 @@
+CREATE VIRTUAL TABLE x USING fts4();VALUES(0,0),(0,0),(0,0),(0,0);PRAGMA 
writable_schema=ON;UPDATE sqlite_master SET sql=''WHERE name='';UPDATE 
sqlite_master SET sql='CREATE table t(d CHECK(T(#0)';SAVEPOINT K;SAVEPOINT 
T;SAVEPOINT T;ANALYZE;ROLLBACK;SAVEPOINT E;DROP TABLE IF EXISTS t;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/docs/vuln_samples/sqlite-null-ptr15.sql 
new/afl-1.73b/docs/vuln_samples/sqlite-null-ptr15.sql
--- old/afl-1.71b/docs/vuln_samples/sqlite-null-ptr15.sql       1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.73b/docs/vuln_samples/sqlite-null-ptr15.sql       2015-04-23 
06:15:46.000000000 +0200
@@ -0,0 +1 @@
+CREATE VIRTUAL TABLE t4 USING fts4(0,b,c,notindexed=0);INSERT INTO t4 
VALUES('','','0');BEGIN;INSERT INTO t4 VALUES('','','0');INSERT INTO 
t4(t4)VALUES('integrity-check');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.71b/llvm_mode/Makefile 
new/afl-1.73b/llvm_mode/Makefile
--- old/afl-1.71b/llvm_mode/Makefile    2015-04-17 01:51:57.000000000 +0200
+++ new/afl-1.73b/llvm_mode/Makefile    2015-04-24 21:12:52.000000000 +0200
@@ -72,7 +72,7 @@
 
 test_build: $(PROGS)
        @echo "[*] Testing the CC wrapper and instrumentation output..."
-       unset AFL_USE_ASAN AFL_USE_MSAN; AFL_QUIET=1 AFL_INST_RATIO=100 
AFL_PATH=. AFL_CC=$(CC) ../afl-clang-fast $(CFLAGS) ../test-instr.c -o 
test-instr $(LDFLAGS)
+       unset AFL_USE_ASAN AFL_USE_MSAN AFL_DEFER_FORKSRV; AFL_QUIET=1 
AFL_INST_RATIO=100 AFL_PATH=. AFL_CC=$(CC) ../afl-clang-fast $(CFLAGS) 
../test-instr.c -o test-instr $(LDFLAGS)
        echo 0 | ../afl-showmap -m none -q -o .test-instr0 ./test-instr
        echo 1 | ../afl-showmap -m none -q -o .test-instr1 ./test-instr
        @rm -f test-instr


Reply via email to