From e91a509873c6d2af3c90ecf139339c25573a67e1 Mon Sep 17 00:00:00 2001 From: Matt Johnston Date: Mon, 22 May 2017 23:24:44 +0800 Subject: Dropbear SSH fuzzer working (#618) --- projects/dropbear/Dockerfile | 24 +++++++++++++++++++++ projects/dropbear/build.sh | 36 ++++++++++++++++++++++++++++++++ projects/dropbear/fuzzer-preauth.options | 2 ++ 3 files changed, 62 insertions(+) create mode 100644 projects/dropbear/Dockerfile create mode 100644 projects/dropbear/build.sh create mode 100644 projects/dropbear/fuzzer-preauth.options (limited to 'projects/dropbear') diff --git a/projects/dropbear/Dockerfile b/projects/dropbear/Dockerfile new file mode 100644 index 00000000..d70cec09 --- /dev/null +++ b/projects/dropbear/Dockerfile @@ -0,0 +1,24 @@ +# Copyright 2016 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +FROM gcr.io/oss-fuzz-base/base-builder +MAINTAINER matt@ucc.asn.au +RUN apt-get update && apt-get install -y libz-dev autoconf mercurial +RUN hg clone -b fuzz https://secure.ucc.asn.au/hg/dropbear dropbear +RUN hg clone https://secure.ucc.asn.au/hg/dropbear-fuzzcorpus dropbear/corpus +WORKDIR dropbear +COPY build.sh *.options $SRC/ + diff --git a/projects/dropbear/build.sh b/projects/dropbear/build.sh new file mode 100644 index 00000000..ab6326bb --- /dev/null +++ b/projects/dropbear/build.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# Copyright 2016 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + + +pushd $SRC/dropbear +autoconf +autoheader +popd + +$SRC/dropbear/configure --enable-fuzz +# force static zlib +sed -i 's@-lz@/usr/lib/x86_64-linux-gnu/libz.a@' Makefile + +make -j$(nproc) fuzz-targets FUZZLIB=$LIB_FUZZING_ENGINE + +TARGETS="$(make list-fuzz-targets)" + +make -C $SRC/dropbear/corpus + +cp -v $TARGETS $OUT/ +cp -v $SRC/*.options $OUT/ +cp -v $SRC/dropbear/corpus/*.zip $OUT/ diff --git a/projects/dropbear/fuzzer-preauth.options b/projects/dropbear/fuzzer-preauth.options new file mode 100644 index 00000000..6659fa94 --- /dev/null +++ b/projects/dropbear/fuzzer-preauth.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 50000 -- cgit v1.2.3