aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorultima <ultima@FreeBSD.org>2017-07-29 02:28:41 +0800
committerultima <ultima@FreeBSD.org>2017-07-29 02:28:41 +0800
commitc0f86a97169216e9698ba44ee9be981ce6a6a6cf (patch)
tree9b7a0e1abdea3309e8932a78d08f42e6801905b5
parentb96511f8a2895aaea8f09f10541d2198b599b773 (diff)
downloadfreebsd-ports-gnome-c0f86a97169216e9698ba44ee9be981ce6a6a6cf.tar.gz
freebsd-ports-gnome-c0f86a97169216e9698ba44ee9be981ce6a6a6cf.tar.zst
freebsd-ports-gnome-c0f86a97169216e9698ba44ee9be981ce6a6a6cf.zip
Vuls is an agentless vulnerability scanner written in golang.
It can scan localhost or remote hosts via SSH. Vuls has a Terminal-Based User Interface(TUI) to display the scan results. Vuls' features include: * scan for vulnerabilitie in Ubuntu, Debian, CentOS, Amazon Linux, RHEL, Oracle Linux, FreeBSD and Raspbian; * scan middleware that are not included in OS package management; * nondestructive testing; * email and slack notification. WWW: https://github.com/future-architect/vuls PR: 220328 Submitted by: Alexandru Ciobanu <iscandr@gmail.com> (maintainer) Reviewed by: matthew (mentor), mat Approved by: matthew (mentor) Differential Revision: https://reviews.freebsd.org/D11746
-rw-r--r--security/Makefile1
-rw-r--r--security/vuls/Makefile166
-rw-r--r--security/vuls/distinfo193
-rw-r--r--security/vuls/files/config.toml.sample29
-rw-r--r--security/vuls/files/patch-commands_configtest.go21
-rw-r--r--security/vuls/files/patch-commands_report.go25
-rw-r--r--security/vuls/files/patch-commands_scan.go24
-rw-r--r--security/vuls/files/patch-commands_tui.go26
-rw-r--r--security/vuls/files/patch-src_gopkg.in_cheggaaa_pb.v2_Gopkg.lock26
-rw-r--r--security/vuls/files/patch-src_gopkg.in_cheggaaa_pb.v2_Gopkg.toml13
-rw-r--r--security/vuls/pkg-descr12
-rw-r--r--security/vuls/pkg-message5
12 files changed, 541 insertions, 0 deletions
diff --git a/security/Makefile b/security/Makefile
index b92f6f404db2..c39ddf2975f6 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -1218,6 +1218,7 @@
SUBDIR += vm-to-tor
SUBDIR += vnccrack
SUBDIR += vpnc
+ SUBDIR += vuls
SUBDIR += vuxml
SUBDIR += vxquery
SUBDIR += w3af
diff --git a/security/vuls/Makefile b/security/vuls/Makefile
new file mode 100644
index 000000000000..a20f86a6c708
--- /dev/null
+++ b/security/vuls/Makefile
@@ -0,0 +1,166 @@
+# $FreeBSD$
+
+PORTNAME= vuls
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.3.0-19
+DISTVERSIONSUFFIX= -g7ecd09f
+CATEGORIES= security
+
+MAINTAINER= iscandr@gmail.com
+COMMENT= Agentless vulnerability scanner
+
+LICENSE= GPLv3
+
+RUN_DEPENDS= ${LOCALBASE}/bin/go-cve-dictionary:security/go-cve-dictionary
+
+USES= go:1.7.1+
+
+USE_GITHUB= yes
+GH_ACCOUNT= future-architect
+GH_SUBDIR= src/github.com/${GH_ACCOUNT_DEFAULT}/${PORTNAME}
+
+GH_TUPLE+= Azure:azure-sdk-for-go:2629e2d:azuresdkforgo/src/github.com/Azure/azure-sdk-for-go
+GH_TUPLE+= Azure:azure-storage-go:12ccaad:azurestoragego/src/github.com/Azure/azure-storage-go
+GH_TUPLE+= Azure:go-autorest:v8.1.0:azuregoautorest/src/github.com/Azure/go-autorest
+GH_TUPLE+= BurntSushi:toml:2ceedfe:toml/src/github.com/BurntSushi/toml
+GH_TUPLE+= aws:aws-sdk-go:v1.10.3:awssdkgo/src/github.com/aws/aws-sdk-go
+GH_TUPLE+= jroimartin:gocui:612b0b2:gocui/src/github.com/jroimartin/gocui
+GH_TUPLE+= go-redis:redis:v6.5.0:redis/src/github.com/go-redis/redis
+GH_TUPLE+= mattn:go-colorable:v0.0.8:gocolorable/src/github.com/mattn/go-colorable
+GH_TUPLE+= mattn:go-runewidth:97311d9:gorunewidth/src/github.com/mattn/go-runewidth
+GH_TUPLE+= mattn:go-isatty:v0.0.2:goisatty/src/github.com/mattn/go-isatty
+GH_TUPLE+= mattn:go-sqlite3:v1.2.0:gosqlite3/src/github.com/mattn/go-sqlite3
+GH_TUPLE+= kotakanbe:go-cve-dictionary:d47709b:gocvedictionary/src/github.com/kotakanbe/go-cve-dictionary
+GH_TUPLE+= kotakanbe:logrus-prefixed-formatter:e7519b8:logrusprefixedformatter/src/github.com/kotakanbe/logrus-prefixed-formatter
+GH_TUPLE+= camlistore:go4:034d17a:go4syncutil/src/go4.org
+GH_TUPLE+= asaskevich:govalidator:v6:govalidator/src/github.com/asaskevich/govalidator
+GH_TUPLE+= boltdb:bolt:v1.3.0:bolt/src/github.com/boltdb/bolt
+GH_TUPLE+= cenkalti:backoff:v1.0.0:backoff/src/github.com/cenkalti/backoff
+GH_TUPLE+= cheggaaa:pb:v2.0.4:pb/src/gopkg.in/cheggaaa/pb.v2
+GH_TUPLE+= dgrijalva:jwt-go:v3.0.0:jwtgo/src/github.com/dgrijalva/jwt-go
+GH_TUPLE+= gosuri:uitable:36ee7e9:uitable/src/github.com/gosuri/uitable
+GH_TUPLE+= howeyc:gopass:bf9dde6:gopass/src/github.com/howeyc/gopass
+GH_TUPLE+= jinzhu:gorm:eae7f6b:gorm/src/github.com/jinzhu/gorm
+GH_TUPLE+= jinzhu:inflection:1c35d90:inflection/src/github.com/jinzhu/inflection
+GH_TUPLE+= k0kubun:pp:v2.3.0:pp/src/github.com/k0kubun/pp
+GH_TUPLE+= kotakanbe:go-pingscanner:v0.1.0:gopingscanner/src/github.com/kotakanbe/go-pingscanner
+GH_TUPLE+= satori:go.uuid:5bf94b6:gouuid/src/github.com/satori/uuid
+GH_TUPLE+= sirupsen:logrus:v1.0.0:logrus/src/github.com/sirupsen/logrus
+GH_TUPLE+= mgutz:ansi:9520e82:ansi/src/github.com/mgutz/ansi
+GH_TUPLE+= mgutz:minimist:39eb8cf:minimist/src/github.com/mgutz/minimist
+GH_TUPLE+= mgutz:str:968bf66:str/src/github.com/mgutz/str
+GH_TUPLE+= mgutz:to:00c0640:to/src/github.com/mgutz/to
+GH_TUPLE+= mgutz:goa:d673c4f:goa/src/github.com/mgutz/goa
+GH_TUPLE+= nozzle:throttler:d9b45f1:throttler/src/github.com/nozzle/throttler
+GH_TUPLE+= denisenkom:go-mssqldb:a8b933e:gomssqldb/src/github.com/denisenkom/go-mssqldb
+GH_TUPLE+= go-sql-driver:mysql:v1.3:mysql/src/github.com/go-sql-driver/mysql
+GH_TUPLE+= lib:pq:8837942:pq/src/github.com/lib/pq
+GH_TUPLE+= nsf:termbox-go:72800b7:termboxgo/src/github.com/nsf/termbox-go
+GH_TUPLE+= parnurzeal:gorequest:v0.2.15:gorequest/src/github.com/parnurzeal/gorequest
+GH_TUPLE+= moul:http2curl:4e24498:http2curl/src/github.com/moul/http2curl
+GH_TUPLE+= pkg:errors:c605e28:pkgerrors/src/github.com/pkg/errors
+GH_TUPLE+= rifflock:lfshook:1.6:lfshook/src/github.com/rifflock/lfshook
+GH_TUPLE+= labstack:echo:bc173df:echo/src/github.com/labstack/echo
+GH_TUPLE+= labstack:gommon:1121fd3:gommon/src/github.com/labstack/gommon
+GH_TUPLE+= shopspring:decimal:16a9418:decimal/src/github.com/shopspring/decimal
+GH_TUPLE+= valyala:fasthttp:0f5182f:fasthttp/src/github.com/valyala/fasthttp
+GH_TUPLE+= valyala:fasttemplate:dcecefd:fasttemplate/src/github.com/valyala/fasttemplate
+GH_TUPLE+= valyala:bytebufferpool:e746df9:bytebufferpool/src/github.com/valyala/bytebufferpool
+GH_TUPLE+= valyala:tcplisten:ceec8f9:tcplisten/src/github.com/valyala/tcplisten
+GH_TUPLE+= PuerkitoBio:goquery:v1.1.0:goquery/src/github.com/PuerkitoBio/goquery
+GH_TUPLE+= fatih:color:v1.5.0:colorv1/src/gopkg.in/fatih/color.v1
+GH_TUPLE+= andybalholm:cascadia:349dd02:cascadia/src/github.com/andybalholm/cascadia
+GH_TUPLE+= GoogleCloudPlatform:google-cloud-go:v0.9.0:googlecloudgo/src/cloud.google.com/go
+GH_TUPLE+= google:subcommands:ce3d4cf:subcommands/src/github.com/google/subcommands
+GH_TUPLE+= googleapis:gax-go:84ed267:gaxgo/src/github.com/googleapis/gax-go
+GH_TUPLE+= google:google-api-go-client:1ba364a:googleapigoclient/src/google.golang.org/api
+GH_TUPLE+= google:go-genproto:aa2eb68:gogenproto/src/google.golang.org/genproto
+GH_TUPLE+= golang:oauth2:f047394:oauth2/src/golang.org/x/oauth2
+GH_TUPLE+= golang:crypto:ed779e1:crypto/src/golang.org/x/crypto
+GH_TUPLE+= golang:net:5f8847a:golangnet/src/golang.org/x/net
+GH_TUPLE+= golang:text:4e9ab9e:golangtext/src/golang.org/x/text
+GH_TUPLE+= golang:tools:e6cb469:golangtools/src/golang.org/x/tools
+GH_TUPLE+= golang:debug:e48e171:debug/src/golang.org/x/debug
+GH_TUPLE+= golang:sync:f52d181:sync/src/golang.org/x/sync
+GH_TUPLE+= golang:time:8be79e1:time/src/golang.org/x/time
+GH_TUPLE+= golang:sys:c23410a:sys/src/golang.org/x/sys
+GH_TUPLE+= golang:geo:f65fe01:geo/src/github.com/golang/geo
+GH_TUPLE+= golang:glog:23def4e:glog/src/github.com/golang/glog
+GH_TUPLE+= golang:protobuf:6a1fa94:protobuf/src/github.com/golang/protobuf
+GH_TUPLE+= golang:mock:93f6609:mock/src/github.com/golang/mock
+GH_TUPLE+= grpc:grpc-go:v1.4.2:grpcgo/src/google.golang.org/grpc
+GH_TUPLE+= VividCortex:ewma:v1.0:ewma/src/gopkg.in/VividCortex/ewma.v1
+GH_TUPLE+= MichaelTJones:walk:4748e29:mtjwalk/src/github.com/MichaelTJones/walk
+GH_TUPLE+= go-godo:godo:v1.4.5:gogodov1/src/gopkg.in/godo.v1
+GH_TUPLE+= go-godo:godo:v2.0.9:gogodo/src/gopkg.in/godo.v2
+GH_TUPLE+= gokyle:fswatch:1dbdf83:walk/src/github.com/gokyle/fswatch
+GH_TUPLE+= klauspost:compress:v1.2.1:compress/src/github.com/klauspost/compress
+GH_TUPLE+= klauspost:cpuid:09cded8:cpuid/src/github.com/klauspost/cpuid
+GH_TUPLE+= klauspost:crc32:1bab8b3:crc32/src/github.com/klauspost/crc32
+GH_TUPLE+= stretchr:testify:f6abca5:testify/src/github.com/stretchr/testify
+GH_TUPLE+= gorilla:websocket:v1.2.0:websocket/src/github.com/gorilla/websocket
+GH_TUPLE+= kardianos:osext:ae77be6:osext/src/github.com/kardianos/osext
+GH_TUPLE+= facebookgo:grace:4afe952:grace/src/github.com/facebookgo/grace
+GH_TUPLE+= facebookgo:httpdown:a3b1354:httpdown/src/github.com/facebookgo/httpdown
+GH_TUPLE+= facebookgo:clock:600d898:clock/src/github.com/facebookgo/clock
+GH_TUPLE+= facebookgo:stats:1b76add:stats/src/github.com/facebookgo/stats
+GH_TUPLE+= GeertJohan:go.rice:c02ca9a:gorice/src/github.com/GeertJohan/go.rice
+GH_TUPLE+= GeertJohan:go.incremental:1172aab:goincremental/src/github.com/GeertJohan/go.incremental
+GH_TUPLE+= daaku:go.zipexe:a5fe243:gozipexe/src/github.com/daaku/go.zipexe
+GH_TUPLE+= davecgh:go-spew:346938d:gospew/src/github.com/davecgh/go-spew
+GH_TUPLE+= akavel:rsrc:ba14da1:rsrc/src/github.com/akavel/rsrc
+GH_TUPLE+= jessevdk:go-flags:5695738:goflags/src/github.com/jessevdk/go-flags
+GH_TUPLE+= tylerb:graceful:v1.2.15:graceful/src/gopkg.in/tylerb/graceful.v1
+GH_TUPLE+= airbrake:gobrake:v2.0.9:gobrake/src/gopkg.in/airbrake/gobrake.v2
+GH_TUPLE+= gemnasium:logrus-airbrake-hook:v2.1.2:logrusairbrakehook/src/gopkg.in/gemnasium/logrus-airbrake-hook.v2
+GH_TUPLE+= urfave:negroni:460c556:negroni/src/github.com/urfave/negroni
+
+PLIST_FILES= bin/${PORTNAME} \
+ "@sample ${ETCDIR}/config.toml.sample"
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|Sirupsen|sirupsen|' \
+ ${WRKSRC}/cache/bolt.go \
+ ${WRKSRC}/cache/bolt_test.go \
+ ${WRKSRC}/commands/discover.go \
+ ${WRKSRC}/config/config.go \
+ ${WRKSRC}/config/tomlloader.go \
+ ${WRKSRC}/report/slack.go \
+ ${WRKSRC}/report/tui.go \
+ ${WRKSRC}/scan/base.go \
+ ${WRKSRC}/scan/debian_test.go \
+ ${WRKSRC}/scan/executil.go \
+ ${WRKSRC}/util/logutil.go \
+ ${WRKSRC}/src/github.com/kotakanbe/go-cve-dictionary/log/log.go \
+ ${WRKSRC}/src/github.com/kotakanbe/logrus-prefixed-formatter/formatter.go \
+ ${WRKSRC}/src/github.com/kotakanbe/logrus-prefixed-formatter/examples/basic.go \
+ ${WRKSRC}/src/github.com/rifflock/lfshook/lfshook.go
+ @${REINPLACE_CMD} -e 's|github.com/cheggaaa/pb|gopkg.in/cheggaaa/pb.v2|' \
+ ${WRKSRC}/src/github.com/kotakanbe/go-cve-dictionary/db/db.go \
+ ${WRKSRC}/src/github.com/kotakanbe/go-cve-dictionary/jvn/jvn.go \
+ ${WRKSRC}/src/github.com/kotakanbe/go-cve-dictionary/nvd/nvd.go
+ @${REINPLACE_CMD} -e 's|github.com/tylerb/graceful|gopkg.in/tylerb/graceful.v1|' \
+ ${WRKSRC}/src/github.com/labstack/echo/recipe/graceful-shutdown/graceful/server.go
+ @${REINPLACE_CMD} -e 's|gopkg.in/mattn/go-runewidth.v0|github.com/mattn/go-runewidth|' \
+ ${WRKSRC}/src/gopkg.in/cheggaaa/pb.v2/util.go
+ @${REINPLACE_CMD} -e 's|gopkg.in/mattn/go-colorable.v0|github.com/mattn/go-colorable|' \
+ ${WRKSRC}/src/gopkg.in/cheggaaa/pb.v2/pb.go
+ @${REINPLACE_CMD} -e 's|gopkg.in/mattn/go-isatty.v0|github.com/mattn/go-isatty|' \
+ ${WRKSRC}/src/gopkg.in/cheggaaa/pb.v2/pb.go
+ @${REINPLACE_CMD} -e 's|%%ETCDIR%%|${ETCDIR}|' \
+ ${WRKSRC}/commands/configtest.go \
+ ${WRKSRC}/commands/report.go \
+ ${WRKSRC}/commands/scan.go
+
+do-build:
+ @cd ${GO_WRKSRC} && \
+ ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPATH=${WRKSRC} \
+ ${GO_CMD} build -v -x -ldflags "-X main.version=${PORTVERSION}" \
+ -o ${WRKSRC}/${PORTNAME}
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+ ${MKDIR} ${STAGEDIR}${ETCDIR}
+ ${INSTALL_DATA} ${FILESDIR}/config.toml.sample ${STAGEDIR}${ETCDIR}
+
+.include <bsd.port.mk>
diff --git a/security/vuls/distinfo b/security/vuls/distinfo
new file mode 100644
index 000000000000..305b13de719e
--- /dev/null
+++ b/security/vuls/distinfo
@@ -0,0 +1,193 @@
+TIMESTAMP = 1501177779
+SHA256 (future-architect-vuls-v0.3.0-19-g7ecd09f_GH0.tar.gz) = 674c623ab3dfd1468fda9f61f60021425c2abe570fd59a1ba17afa027b15dadd
+SIZE (future-architect-vuls-v0.3.0-19-g7ecd09f_GH0.tar.gz) = 1251380
+SHA256 (Azure-azure-sdk-for-go-2629e2d_GH0.tar.gz) = 24097a626ea33e50fed2f6dbda921f7980c9082bf904289b6d9a03ecdb4bf740
+SIZE (Azure-azure-sdk-for-go-2629e2d_GH0.tar.gz) = 974693
+SHA256 (Azure-azure-storage-go-12ccaad_GH0.tar.gz) = 39c440b0e9eac252ef47175de3a5dd94e4ffa3de72a01a82416cd0a548875784
+SIZE (Azure-azure-storage-go-12ccaad_GH0.tar.gz) = 50836
+SHA256 (Azure-go-autorest-v8.1.0_GH0.tar.gz) = 32c7d963f056dcaf59262897f8c72f612703a99c0a2e006e10266e6314f1fa65
+SIZE (Azure-go-autorest-v8.1.0_GH0.tar.gz) = 85241
+SHA256 (BurntSushi-toml-2ceedfe_GH0.tar.gz) = 60643ab230129be2fa75c2731ee3a1d17c2c06364f0680d9b99a8365de637657
+SIZE (BurntSushi-toml-2ceedfe_GH0.tar.gz) = 33498
+SHA256 (aws-aws-sdk-go-v1.10.3_GH0.tar.gz) = ef56134fceb8d6f0139e9a1c4c30bf1824bf8316eb36968a55fdf63446d89fe8
+SIZE (aws-aws-sdk-go-v1.10.3_GH0.tar.gz) = 6930947
+SHA256 (jroimartin-gocui-612b0b2_GH0.tar.gz) = b494beee95c461b7faa5525ab445c26830bff3273cd916d6bd176cc9bd247fa0
+SIZE (jroimartin-gocui-612b0b2_GH0.tar.gz) = 27711
+SHA256 (go-redis-redis-v6.5.0_GH0.tar.gz) = 992b27dee80639c3605b99525adf76e5e76e4d1acd7e1e97476c5d0446e0d0b8
+SIZE (go-redis-redis-v6.5.0_GH0.tar.gz) = 72475
+SHA256 (mattn-go-colorable-v0.0.8_GH0.tar.gz) = 4f7b0196c6d7a7be96ba394c94860384b537cec6e0da57951bccda0d42c1c23c
+SIZE (mattn-go-colorable-v0.0.8_GH0.tar.gz) = 7526
+SHA256 (mattn-go-runewidth-97311d9_GH0.tar.gz) = 8330497728f75464111ee7145fc97cfa588cb0d6561b3af5447aa05d489bca85
+SIZE (mattn-go-runewidth-97311d9_GH0.tar.gz) = 22384
+SHA256 (mattn-go-isatty-v0.0.2_GH0.tar.gz) = c0681d72b185a8d4aa8f6a557d181bf25c6e3e7f3874711de507e550b25408bf
+SIZE (mattn-go-isatty-v0.0.2_GH0.tar.gz) = 3258
+SHA256 (mattn-go-sqlite3-v1.2.0_GH0.tar.gz) = ec21a30c397d0d3153d54b3aa71065481dd9702819006fb8bc0443a6ab47caa8
+SIZE (mattn-go-sqlite3-v1.2.0_GH0.tar.gz) = 1998473
+SHA256 (kotakanbe-go-cve-dictionary-d47709b_GH0.tar.gz) = b149ede0909d1bcfa024c81c246abb556f035fa40def6c8b2709ec5a82202aec
+SIZE (kotakanbe-go-cve-dictionary-d47709b_GH0.tar.gz) = 23334
+SHA256 (kotakanbe-logrus-prefixed-formatter-e7519b8_GH0.tar.gz) = e14b91af06bc0a752c97519dff4accf4a03547cbb9dd2ba197a9420fb3f14303
+SIZE (kotakanbe-logrus-prefixed-formatter-e7519b8_GH0.tar.gz) = 3862
+SHA256 (camlistore-go4-034d17a_GH0.tar.gz) = 1c9111f937747660e5cee7c6c435d010011d6fe506df5603b88cce4dd102f39c
+SIZE (camlistore-go4-034d17a_GH0.tar.gz) = 78850
+SHA256 (asaskevich-govalidator-v6_GH0.tar.gz) = 17ee798f3758885e6ed6f1cfc81033c3aca4c15a9d2b3856a01e648ffb46f0a0
+SIZE (asaskevich-govalidator-v6_GH0.tar.gz) = 39610
+SHA256 (boltdb-bolt-v1.3.0_GH0.tar.gz) = e417fccc1186dcf8807e3b2a7afb31bad31faf2ca383d203002a7d783c872f13
+SIZE (boltdb-bolt-v1.3.0_GH0.tar.gz) = 80322
+SHA256 (cenkalti-backoff-v1.0.0_GH0.tar.gz) = a9511bd60331870455f89c69892ec5c90131e4c0f973f7e25f4f4a88ce95a4a2
+SIZE (cenkalti-backoff-v1.0.0_GH0.tar.gz) = 7002
+SHA256 (cheggaaa-pb-v2.0.4_GH0.tar.gz) = 21388e5df7bed43ae2b8157a4e17b85ef416ca4925723ddc182f43e3fc719225
+SIZE (cheggaaa-pb-v2.0.4_GH0.tar.gz) = 17205
+SHA256 (dgrijalva-jwt-go-v3.0.0_GH0.tar.gz) = af12bdfbfb897c4a5c86aeffd11cab35ee18ab0180b1a6e22e1a1a61d9f70543
+SIZE (dgrijalva-jwt-go-v3.0.0_GH0.tar.gz) = 33451
+SHA256 (gosuri-uitable-36ee7e9_GH0.tar.gz) = 4742cc0ea0b751eb046a8f4afaff943a8d38ee0925b89e39e5234a6fdaee5807
+SIZE (gosuri-uitable-36ee7e9_GH0.tar.gz) = 6858
+SHA256 (howeyc-gopass-bf9dde6_GH0.tar.gz) = 365806397c1f279fbb45b86562c43e6f112e8a81cf788df5ea356a18c80f6537
+SIZE (howeyc-gopass-bf9dde6_GH0.tar.gz) = 11287
+SHA256 (jinzhu-gorm-eae7f6b_GH0.tar.gz) = aff8d777868e65751deadff1353949cdc1c8c0680e4f687c2fa9311fdb6dfe74
+SIZE (jinzhu-gorm-eae7f6b_GH0.tar.gz) = 79432
+SHA256 (jinzhu-inflection-1c35d90_GH0.tar.gz) = 9403d9051e6fb253555c83261ce4c9ff9cb0210a4f326b8568b18d3e1bfbed24
+SIZE (jinzhu-inflection-1c35d90_GH0.tar.gz) = 4499
+SHA256 (k0kubun-pp-v2.3.0_GH0.tar.gz) = e411569ac6fe6413b24b63765fd9d6b7cbb03d162068c31186db947aeaf4b0b8
+SIZE (k0kubun-pp-v2.3.0_GH0.tar.gz) = 8778
+SHA256 (kotakanbe-go-pingscanner-v0.1.0_GH0.tar.gz) = 8be39850ce4db2cdf3a7d6c99d5b875c820beecc18e21e8e4bc95e143526e32d
+SIZE (kotakanbe-go-pingscanner-v0.1.0_GH0.tar.gz) = 5681
+SHA256 (satori-go.uuid-5bf94b6_GH0.tar.gz) = eb26d69da0a36d9318183dd4a15b162cf8d6e4493f6c12ae635ba0a072e06da1
+SIZE (satori-go.uuid-5bf94b6_GH0.tar.gz) = 7607
+SHA256 (sirupsen-logrus-v1.0.0_GH0.tar.gz) = de40c5f36b126217234cf5d40def87ce26789ce95c8f887b229b9f2ea1e3ed6b
+SIZE (sirupsen-logrus-v1.0.0_GH0.tar.gz) = 27996
+SHA256 (mgutz-ansi-9520e82_GH0.tar.gz) = eed589c0869270ea90e776fa623a0a29a5973f2acc86fbf305573b4861887140
+SIZE (mgutz-ansi-9520e82_GH0.tar.gz) = 4870
+SHA256 (mgutz-minimist-39eb8cf_GH0.tar.gz) = cf088f7d8ad63f70204a9d6663839c4fb0015ef479170676ef215521ecf5c4ed
+SIZE (mgutz-minimist-39eb8cf_GH0.tar.gz) = 4016
+SHA256 (mgutz-str-968bf66_GH0.tar.gz) = 58ea322f5c33e658deaf7d032ffc67c48772bd320089b0ac982a22221b4c9805
+SIZE (mgutz-str-968bf66_GH0.tar.gz) = 13310
+SHA256 (mgutz-to-00c0640_GH0.tar.gz) = 6a04f1236663adba88b2cf3c84a45e0d6aa8579383a8d2fca9b56fee038b1ee6
+SIZE (mgutz-to-00c0640_GH0.tar.gz) = 8038
+SHA256 (mgutz-goa-d673c4f_GH0.tar.gz) = 50442ca8e43d5517d979038561635425b75c935bd22350c4f6be45ec05442c17
+SIZE (mgutz-goa-d673c4f_GH0.tar.gz) = 5944
+SHA256 (nozzle-throttler-d9b45f1_GH0.tar.gz) = b2e0a2aac36f2508100149bc5e94a60328a1b5151ffc9ee9fd7536e5e5534570
+SIZE (nozzle-throttler-d9b45f1_GH0.tar.gz) = 8157
+SHA256 (denisenkom-go-mssqldb-a8b933e_GH0.tar.gz) = 7633f820976915d06e2fc569acd8ca45751c25573a6902ff644b16619d0d2179
+SIZE (denisenkom-go-mssqldb-a8b933e_GH0.tar.gz) = 481386
+SHA256 (go-sql-driver-mysql-v1.3_GH0.tar.gz) = 410bcaca471ea38892101464cc8b4a9cf63a9c7f94fce8728243829e36cd865b
+SIZE (go-sql-driver-mysql-v1.3_GH0.tar.gz) = 59830
+SHA256 (lib-pq-8837942_GH0.tar.gz) = a7b8aec65325b03799c5336af3ace1a04ade723a30c9abe927f2b16ffbc61385
+SIZE (lib-pq-8837942_GH0.tar.gz) = 85539
+SHA256 (nsf-termbox-go-72800b7_GH0.tar.gz) = 567c5dda790f8feeaf24b491214204c16c54c3503b7c03f2c2bfbd44c240da67
+SIZE (nsf-termbox-go-72800b7_GH0.tar.gz) = 30454
+SHA256 (parnurzeal-gorequest-v0.2.15_GH0.tar.gz) = 776fbd9a5ebe79e6e1091cae47d5ace67f7bf49a224a35f2c84e27f3f464817f
+SIZE (parnurzeal-gorequest-v0.2.15_GH0.tar.gz) = 25591
+SHA256 (moul-http2curl-4e24498_GH0.tar.gz) = 48957974315c9689a27e4a65315d4eb0e94cb04e266a59f813ad9e1b99df8e66
+SIZE (moul-http2curl-4e24498_GH0.tar.gz) = 100177
+SHA256 (pkg-errors-c605e28_GH0.tar.gz) = 06fa83babc1d9aa80b0decb6d36504090bbde8a38d9a722a1f7a26616590a0d0
+SIZE (pkg-errors-c605e28_GH0.tar.gz) = 11476
+SHA256 (rifflock-lfshook-1.6_GH0.tar.gz) = 64f6a7b085bbceec503f311d9f130436457b996f7260dad7db6638ceb19d9f45
+SIZE (rifflock-lfshook-1.6_GH0.tar.gz) = 3515
+SHA256 (labstack-echo-bc173df_GH0.tar.gz) = 130084d65a0fd9fbeba6f2f88b7f6ef0dcf0d42d988b7720a9e158a16afa23f7
+SIZE (labstack-echo-bc173df_GH0.tar.gz) = 322895
+SHA256 (labstack-gommon-1121fd3_GH0.tar.gz) = b2799817a7225c50d37549db05b981cfa416ea7e3ee54aeb53187c3a29f83805
+SIZE (labstack-gommon-1121fd3_GH0.tar.gz) = 10176
+SHA256 (shopspring-decimal-16a9418_GH0.tar.gz) = 274e4ab5132a9d7c8fbef32c61a99cf12bb7f0639572d11f59f29a9e92df0333
+SIZE (shopspring-decimal-16a9418_GH0.tar.gz) = 17785
+SHA256 (valyala-fasthttp-0f5182f_GH0.tar.gz) = 1198e1f046702dcdcdf95c083915f21d52a893672219006e2bc052f710f83343
+SIZE (valyala-fasthttp-0f5182f_GH0.tar.gz) = 163547
+SHA256 (valyala-fasttemplate-dcecefd_GH0.tar.gz) = ba29e16f9b2d6425f500b40747b139c6ce88cdd26b60dcf5967fe9e6cf5f3eb7
+SIZE (valyala-fasttemplate-dcecefd_GH0.tar.gz) = 11627
+SHA256 (valyala-bytebufferpool-e746df9_GH0.tar.gz) = 417d888730e7788f701b9931325f9be9ac6a6932779da61f88d04bf02fd69457
+SIZE (valyala-bytebufferpool-e746df9_GH0.tar.gz) = 5028
+SHA256 (valyala-tcplisten-ceec8f9_GH0.tar.gz) = 716e31f99a465337b13fa21d0c6e02da18af9f9f1ecaccc2a1ec6ff95e3344e6
+SIZE (valyala-tcplisten-ceec8f9_GH0.tar.gz) = 4573
+SHA256 (PuerkitoBio-goquery-v1.1.0_GH0.tar.gz) = 8242ca59ecb79aada1463ee327304953ad49bb5053807e79e2ad07e8d70a00c6
+SIZE (PuerkitoBio-goquery-v1.1.0_GH0.tar.gz) = 98494
+SHA256 (fatih-color-v1.5.0_GH0.tar.gz) = f22564848cd7d24022413c719bbc9c35d014ba7d19ee802b29ba5a93016d3250
+SIZE (fatih-color-v1.5.0_GH0.tar.gz) = 586937
+SHA256 (andybalholm-cascadia-349dd02_GH0.tar.gz) = e78d2b893ef4ac59962510ebb46ee0cf705330a4d853a6686758bc1706f40edf
+SIZE (andybalholm-cascadia-349dd02_GH0.tar.gz) = 13172
+SHA256 (GoogleCloudPlatform-google-cloud-go-v0.9.0_GH0.tar.gz) = 4303332ae35efe09cf9f7fdd81e28014cef996e485f96c7497fcefc3cc48f1ac
+SIZE (GoogleCloudPlatform-google-cloud-go-v0.9.0_GH0.tar.gz) = 1054667
+SHA256 (google-subcommands-ce3d4cf_GH0.tar.gz) = 660c4a27138acf9f40eb5b69d8f8401521626bd29235f6472f1b1ac457ab4c99
+SIZE (google-subcommands-ce3d4cf_GH0.tar.gz) = 8551
+SHA256 (googleapis-gax-go-84ed267_GH0.tar.gz) = 1d17c568a65b304167d9c030dc4353c9b48a9d63b0eaa7815ffa28e3d27d4c7b
+SIZE (googleapis-gax-go-84ed267_GH0.tar.gz) = 10165
+SHA256 (google-google-api-go-client-1ba364a_GH0.tar.gz) = 6c827b886213d3f0e3e04f4b6cc666a7be4f739191251bfc58e0fc1219e0eb22
+SIZE (google-google-api-go-client-1ba364a_GH0.tar.gz) = 5775524
+SHA256 (google-go-genproto-aa2eb68_GH0.tar.gz) = 4d7b60a1dd88b124ab0475b5136bbb60958afb4a77d4fa557c906fed92e90257
+SIZE (google-go-genproto-aa2eb68_GH0.tar.gz) = 911983
+SHA256 (golang-oauth2-f047394_GH0.tar.gz) = aff836b991d53169696e57727ecfd58a4f081630aeb82701dfaf695eb8d6365f
+SIZE (golang-oauth2-f047394_GH0.tar.gz) = 38172
+SHA256 (golang-crypto-ed779e1_GH0.tar.gz) = cf821a8cb4e213492b6c908981b40feda3007dbe5cf9f6702867af7b1c9e771a
+SIZE (golang-crypto-ed779e1_GH0.tar.gz) = 1329138
+SHA256 (golang-net-5f8847a_GH0.tar.gz) = 55a46531c8c0fb60ae7566cae1c59681c9869e5df1c4a9a8304448afef65164a
+SIZE (golang-net-5f8847a_GH0.tar.gz) = 909712
+SHA256 (golang-text-4e9ab9e_GH0.tar.gz) = 429cf237cefbabcc9eb566c6e0642ff3c485aa4127c2354259f0e54a5a8eaa3e
+SIZE (golang-text-4e9ab9e_GH0.tar.gz) = 4588267
+SHA256 (golang-tools-e6cb469_GH0.tar.gz) = 556cef1144fffb09345370319066c61489638d0dd98b2615f3b2fad43f93760c
+SIZE (golang-tools-e6cb469_GH0.tar.gz) = 2231881
+SHA256 (golang-debug-e48e171_GH0.tar.gz) = b44f682091a9dc06c81e6abbf447317b21efb10ea93ea4f057717327f4ee6cce
+SIZE (golang-debug-e48e171_GH0.tar.gz) = 162116
+SHA256 (golang-sync-f52d181_GH0.tar.gz) = 09348bc111e335c24b1be229582c0cc897418d2331eec175720c04a15d6ca0bb
+SIZE (golang-sync-f52d181_GH0.tar.gz) = 15326
+SHA256 (golang-time-8be79e1_GH0.tar.gz) = f295878d51741a4881a7ce8532a50f6f7f5184970e322d39e0c2969b8e3b3677
+SIZE (golang-time-8be79e1_GH0.tar.gz) = 9302
+SHA256 (golang-sys-c23410a_GH0.tar.gz) = b3469dd58f97037133099b0e1d580c977c388986d1aa21edc852569043063a11
+SIZE (golang-sys-c23410a_GH0.tar.gz) = 717300
+SHA256 (golang-geo-f65fe01_GH0.tar.gz) = dd288c8304abf9ff6d9d9cadde5d81a0ba5e2d48912e2eaa4ce65c887a9063de
+SIZE (golang-geo-f65fe01_GH0.tar.gz) = 174467
+SHA256 (golang-glog-23def4e_GH0.tar.gz) = db10005484f249828004a8d1cb48a7305de01d619c130a3531070df331085ffe
+SIZE (golang-glog-23def4e_GH0.tar.gz) = 19652
+SHA256 (golang-protobuf-6a1fa94_GH0.tar.gz) = e68ff13fa60587972dd169ee3677d690304760308a0b42e877e14f02ca604f06
+SIZE (golang-protobuf-6a1fa94_GH0.tar.gz) = 253318
+SHA256 (golang-mock-93f6609_GH0.tar.gz) = 7c35f52ec665b4a267208d9729e25c3dc853eee8f9c44aa3215664767964d575
+SIZE (golang-mock-93f6609_GH0.tar.gz) = 28607
+SHA256 (grpc-grpc-go-v1.4.2_GH0.tar.gz) = c6a145806a4f0dd53d8259661b0633a1a33803895ca4676feb927022ad8cb994
+SIZE (grpc-grpc-go-v1.4.2_GH0.tar.gz) = 292074
+SHA256 (VividCortex-ewma-v1.0_GH0.tar.gz) = 7e62b9cc28b336f2496aa98da60f3a8ba6a1f0112f0493c60959e9bcc25709f3
+SIZE (VividCortex-ewma-v1.0_GH0.tar.gz) = 3609
+SHA256 (MichaelTJones-walk-4748e29_GH0.tar.gz) = 99997db1739969bfc158f3f4945f242a2384f9a9899247a1bf433e974f1292a0
+SIZE (MichaelTJones-walk-4748e29_GH0.tar.gz) = 9620
+SHA256 (go-godo-godo-v1.4.5_GH0.tar.gz) = 7a37fb8d2ca7dbe3c04a66adddbe38caf03dfcfbfac1981731a289cd9b2caba2
+SIZE (go-godo-godo-v1.4.5_GH0.tar.gz) = 23305
+SHA256 (go-godo-godo-v2.0.9_GH0.tar.gz) = 7ba11bec0de3404b3d4317e3d66fdbab013e7677150e6e0200c451d667385a85
+SIZE (go-godo-godo-v2.0.9_GH0.tar.gz) = 41403
+SHA256 (gokyle-fswatch-1dbdf83_GH0.tar.gz) = 43ffb4cdbbbde437b384e4b985cc33a2f0457d2dc41e845331dd930c9d6664b5
+SIZE (gokyle-fswatch-1dbdf83_GH0.tar.gz) = 4994
+SHA256 (klauspost-compress-v1.2.1_GH0.tar.gz) = 5c95b4b8dba515d275c4071675d35415512b0415d103653ba00f7305bb9ecfa9
+SIZE (klauspost-compress-v1.2.1_GH0.tar.gz) = 2725575
+SHA256 (klauspost-cpuid-09cded8_GH0.tar.gz) = d683b433a3bb75a1e3a6d85cd6e373a0340b5ffe525a9458b51d969f19df597e
+SIZE (klauspost-cpuid-09cded8_GH0.tar.gz) = 205087
+SHA256 (klauspost-crc32-1bab8b3_GH0.tar.gz) = 4437187a49ad2ffc4218b51df9c32903144af1b541508964d76dd5e9844f4839
+SIZE (klauspost-crc32-1bab8b3_GH0.tar.gz) = 16075
+SHA256 (stretchr-testify-f6abca5_GH0.tar.gz) = c254665dbd1a155475dc685ca58bfae991c78e672c4dc6707fd3c1973724cf9f
+SIZE (stretchr-testify-f6abca5_GH0.tar.gz) = 94085
+SHA256 (gorilla-websocket-v1.2.0_GH0.tar.gz) = 04d1c4fa839a01d32d3c8c558370a964d83b5c980f74c4b965f3dd04f8cb9276
+SIZE (gorilla-websocket-v1.2.0_GH0.tar.gz) = 42984
+SHA256 (kardianos-osext-ae77be6_GH0.tar.gz) = 539367f48ed1d4f1b8bec4cf742ac7bce7c5b9319f4338a12310edddec005213
+SIZE (kardianos-osext-ae77be6_GH0.tar.gz) = 4851
+SHA256 (facebookgo-grace-4afe952_GH0.tar.gz) = e9a47dcc8764c5124eb7250a6ab5263a431f4d183130f84ca0257bb6aa296c94
+SIZE (facebookgo-grace-4afe952_GH0.tar.gz) = 13379
+SHA256 (facebookgo-httpdown-a3b1354_GH0.tar.gz) = 220f737bccc8fa03ac4bd73426c143e5e95c3a5ea9dddaffe3aefd9625ae2468
+SIZE (facebookgo-httpdown-a3b1354_GH0.tar.gz) = 9738
+SHA256 (facebookgo-clock-600d898_GH0.tar.gz) = ef0cdd71a3df0cf2de528d6b8a7db5df5d7a974774d04ec156f0bcba7fb6a6fa
+SIZE (facebookgo-clock-600d898_GH0.tar.gz) = 6375
+SHA256 (facebookgo-stats-1b76add_GH0.tar.gz) = 568616050c1d4022b4becf0871c6f87f4ccea6cd5e772238e88060decc66c0d4
+SIZE (facebookgo-stats-1b76add_GH0.tar.gz) = 5655
+SHA256 (GeertJohan-go.rice-c02ca9a_GH0.tar.gz) = 625245dbe6bc0b2447d9afa95b370e1bb241d151c976ca206141c0704605fb39
+SIZE (GeertJohan-go.rice-c02ca9a_GH0.tar.gz) = 67035
+SHA256 (GeertJohan-go.incremental-1172aab_GH0.tar.gz) = b566e8cc820931b0891a6ed7ae217fa714fdcd863d507df0993d22d7725fc6c2
+SIZE (GeertJohan-go.incremental-1172aab_GH0.tar.gz) = 4033
+SHA256 (daaku-go.zipexe-a5fe243_GH0.tar.gz) = e9a9841bc4611d8ab7deab91be51dae13e10e302c422b1d7de52ceaef272f2c7
+SIZE (daaku-go.zipexe-a5fe243_GH0.tar.gz) = 2017
+SHA256 (davecgh-go-spew-346938d_GH0.tar.gz) = 92e706ece5da01f2c61cf632e168d8c24d44866523b25f0e8eb9d1596c5d5f79
+SIZE (davecgh-go-spew-346938d_GH0.tar.gz) = 42343
+SHA256 (akavel-rsrc-ba14da1_GH0.tar.gz) = 5be9446d6bfea3ba954ae97663afe857580069e7e89ac404fc9e707d5bffcf5c
+SIZE (akavel-rsrc-ba14da1_GH0.tar.gz) = 10546
+SHA256 (jessevdk-go-flags-5695738_GH0.tar.gz) = 6027d62caee65e65444600fbcc004cc50e2b38f6226fe6cfeab7b29e6a81a6ac
+SIZE (jessevdk-go-flags-5695738_GH0.tar.gz) = 54980
+SHA256 (tylerb-graceful-v1.2.15_GH0.tar.gz) = d8c4ff8f2d85fe265d7507ef9f71c6c29102c1a043b9c2a65cc9d3072227f31f
+SIZE (tylerb-graceful-v1.2.15_GH0.tar.gz) = 15028
+SHA256 (airbrake-gobrake-v2.0.9_GH0.tar.gz) = 8c1195fa5130bfbc003f34770b33273ea37f61635ebb8ce4b3324eeb1793631d
+SIZE (airbrake-gobrake-v2.0.9_GH0.tar.gz) = 6350
+SHA256 (gemnasium-logrus-airbrake-hook-v2.1.2_GH0.tar.gz) = b3948ec80ff9d1ede5ec5bb8cccd5517b8aba7a5b6889002e9f93159ad32db35
+SIZE (gemnasium-logrus-airbrake-hook-v2.1.2_GH0.tar.gz) = 3937
+SHA256 (urfave-negroni-460c556_GH0.tar.gz) = f2a262617a61b3c152daa2fc3469060b18d581b25b92277923f3c4cf753ae295
+SIZE (urfave-negroni-460c556_GH0.tar.gz) = 29289
diff --git a/security/vuls/files/config.toml.sample b/security/vuls/files/config.toml.sample
new file mode 100644
index 000000000000..e89273aa5ac8
--- /dev/null
+++ b/security/vuls/files/config.toml.sample
@@ -0,0 +1,29 @@
+[servers]
+
+[servers.localhost]
+host = "localhost"
+port = "local"
+
+#
+# [servers.172-31-4-82]
+# host = "172.31.4.82"
+# port = "22"
+# user = "ec2-user"
+# keyPath = "/home/ec2-user/.ssh/id_rsa"
+#
+# [slack]
+# hookURL = "https://hooks.slack.com/services/abc123/defghijklmnopqrstuvwxyz"
+# channel = "#channel-name"
+# iconEmoji = ":ghost:"
+# authUser = "username"
+# notifyUsers = ["@username"]
+#
+# [email]
+# smtpAddr = "smtp.gmail.com"
+# smtpPort = "587"
+# user = "username"
+# password = "password"
+# from = "from@address.com"
+# to = ["to@address.com"]
+# cc = ["cc@address.com"]
+# subjectPrefix = "[vuls]"
diff --git a/security/vuls/files/patch-commands_configtest.go b/security/vuls/files/patch-commands_configtest.go
new file mode 100644
index 000000000000..d23cd0086fbc
--- /dev/null
+++ b/security/vuls/files/patch-commands_configtest.go
@@ -0,0 +1,21 @@
+--- commands/configtest.go.orig 2017-06-23 15:51:48 UTC
++++ commands/configtest.go
+@@ -20,8 +20,6 @@ package commands
+ import (
+ "context"
+ "flag"
+- "os"
+- "path/filepath"
+
+ "github.com/google/subcommands"
+
+@@ -68,8 +66,7 @@ func (*ConfigtestCmd) Usage() string {
+
+ // SetFlags set flag
+ func (p *ConfigtestCmd) SetFlags(f *flag.FlagSet) {
+- wd, _ := os.Getwd()
+- defaultConfPath := filepath.Join(wd, "config.toml")
++ defaultConfPath := "%%ETCDIR%%/config.toml"
+ f.StringVar(&p.configPath, "config", defaultConfPath, "/path/to/toml")
+
+ defaultLogDir := util.GetDefaultLogDir()
diff --git a/security/vuls/files/patch-commands_report.go b/security/vuls/files/patch-commands_report.go
new file mode 100644
index 000000000000..6c891e71794c
--- /dev/null
+++ b/security/vuls/files/patch-commands_report.go
@@ -0,0 +1,25 @@
+--- commands/report.go.orig 2017-06-23 15:51:48 UTC
++++ commands/report.go
+@@ -132,11 +132,11 @@ func (p *ReportCmd) SetFlags(f *flag.Fla
+ f.BoolVar(&p.debug, "debug", false, "debug mode")
+ f.BoolVar(&p.debugSQL, "debug-sql", false, "SQL debug mode")
+
+- wd, _ := os.Getwd()
+
+- defaultConfPath := filepath.Join(wd, "config.toml")
++ defaultConfPath := "%%ETCDIR%%/config.toml"
+ f.StringVar(&p.configPath, "config", defaultConfPath, "/path/to/toml")
+
++ wd, _ := os.Getwd()
+ defaultResultsDir := filepath.Join(wd, "results")
+ f.StringVar(&p.resultsDir, "results-dir", defaultResultsDir, "/path/to/results")
+
+@@ -155,7 +155,7 @@ func (p *ReportCmd) SetFlags(f *flag.Fla
+ "sqlite3",
+ "DB type for fetching CVE dictionary (sqlite3, mysql or postgres)")
+
+- defaultCveDBPath := filepath.Join(wd, "cve.sqlite3")
++ defaultCveDBPath := "/var/db/vuls/cve.sqlite3"
+ f.StringVar(
+ &p.cvedbpath,
+ "cvedb-path",
diff --git a/security/vuls/files/patch-commands_scan.go b/security/vuls/files/patch-commands_scan.go
new file mode 100644
index 000000000000..2fb9a5896f3d
--- /dev/null
+++ b/security/vuls/files/patch-commands_scan.go
@@ -0,0 +1,24 @@
+--- commands/scan.go.orig 2017-06-23 15:51:48 UTC
++++ commands/scan.go
+@@ -82,18 +82,18 @@ func (*ScanCmd) Usage() string {
+ func (p *ScanCmd) SetFlags(f *flag.FlagSet) {
+ f.BoolVar(&p.debug, "debug", false, "debug mode")
+
+- wd, _ := os.Getwd()
+
+- defaultConfPath := filepath.Join(wd, "config.toml")
++ defaultConfPath := "%%ETCDIR%%/config.toml"
+ f.StringVar(&p.configPath, "config", defaultConfPath, "/path/to/toml")
+
++ wd, _ := os.Getwd()
+ defaultResultsDir := filepath.Join(wd, "results")
+ f.StringVar(&p.resultsDir, "results-dir", defaultResultsDir, "/path/to/results")
+
+ defaultLogDir := util.GetDefaultLogDir()
+ f.StringVar(&p.logDir, "log-dir", defaultLogDir, "/path/to/log")
+
+- defaultCacheDBPath := filepath.Join(wd, "cache.db")
++ defaultCacheDBPath := "/var/db/vuls/cache.db"
+ f.StringVar(
+ &p.cacheDBPath,
+ "cachedb-path",
diff --git a/security/vuls/files/patch-commands_tui.go b/security/vuls/files/patch-commands_tui.go
new file mode 100644
index 000000000000..21c569b7545b
--- /dev/null
+++ b/security/vuls/files/patch-commands_tui.go
@@ -0,0 +1,26 @@
+--- commands/tui.go.orig 2017-06-23 15:51:48 UTC
++++ commands/tui.go
+@@ -94,12 +94,12 @@ func (p *TuiCmd) SetFlags(f *flag.FlagSe
+ "sqlite3",
+ "DB type for fetching CVE dictionary (sqlite3, mysql or postgres)")
+
+- defaultCveDBPath := filepath.Join(wd, "cve.sqlite3")
++ defaultCveDBPath := "/var/db/vuls/cve.sqlite3"
+ f.StringVar(
+ &p.cvedbpath,
+ "cvedb-path",
+ defaultCveDBPath,
+- "/path/to/sqlite3 (For get cve detail from cve.sqlite3)")
++ "/path/to/sqlite3 (For getting CVE details from cve.sqlite3)")
+
+ f.StringVar(
+ &p.cveDictionaryURL,
+@@ -153,7 +153,7 @@ func (p *TuiCmd) Execute(_ context.Conte
+ if p.refreshCve || needToRefreshCve(r) {
+ if c.Conf.CveDBType == "sqlite3" {
+ if _, err := os.Stat(c.Conf.CveDBPath); os.IsNotExist(err) {
+- log.Errorf("SQLite3 DB(CVE-Dictionary) is not exist: %s",
++ log.Errorf("SQLite3 DB(CVE-Dictionary) does not exist: %s",
+ c.Conf.CveDBPath)
+ return subcommands.ExitFailure
+ }
diff --git a/security/vuls/files/patch-src_gopkg.in_cheggaaa_pb.v2_Gopkg.lock b/security/vuls/files/patch-src_gopkg.in_cheggaaa_pb.v2_Gopkg.lock
new file mode 100644
index 000000000000..879b5dcef366
--- /dev/null
+++ b/security/vuls/files/patch-src_gopkg.in_cheggaaa_pb.v2_Gopkg.lock
@@ -0,0 +1,26 @@
+--- src/gopkg.in/cheggaaa/pb.v2/Gopkg.lock.orig 2017-06-04 15:08:13 UTC
++++ src/gopkg.in/cheggaaa/pb.v2/Gopkg.lock
+@@ -4,8 +4,8 @@
+ [[projects]]
+ name = "github.com/mattn/go-colorable"
+ packages = ["."]
+- revision = "ed8eb9e318d7a84ce5915b495b7d35e0cfe7b5a8"
+- version = "v0.0.6"
++ revision = "941b50ebc6efddf4c41c8e4537a5f68a4e686b24"
++ version = "v0.0.8"
+
+ [[projects]]
+ name = "github.com/mattn/go-isatty"
+@@ -38,12 +38,6 @@
+ version = "v1.5.0"
+
+ [[projects]]
+- name = "gopkg.in/mattn/go-colorable.v0"
+- packages = ["."]
+- revision = "d228849504861217f796da67fae4f6e347643f15"
+- version = "v0.0.7"
+-
+-[[projects]]
+ name = "gopkg.in/mattn/go-isatty.v0"
+ packages = ["."]
+ revision = "fc9e8d8ef48496124e79ae0df75490096eccf6fe"
diff --git a/security/vuls/files/patch-src_gopkg.in_cheggaaa_pb.v2_Gopkg.toml b/security/vuls/files/patch-src_gopkg.in_cheggaaa_pb.v2_Gopkg.toml
new file mode 100644
index 000000000000..f1675b013d35
--- /dev/null
+++ b/security/vuls/files/patch-src_gopkg.in_cheggaaa_pb.v2_Gopkg.toml
@@ -0,0 +1,13 @@
+--- src/gopkg.in/cheggaaa/pb.v2/Gopkg.toml.orig 2017-06-04 15:08:13 UTC
++++ src/gopkg.in/cheggaaa/pb.v2/Gopkg.toml
+@@ -79,8 +79,8 @@
+ version = "1.5.0"
+
+ [[constraint]]
+- name = "gopkg.in/mattn/go-colorable.v0"
+- version = "0.0.7"
++ name = "github.com/mattn/go-colorable"
++ version = "0.0.8"
+
+ [[constraint]]
+ name = "gopkg.in/mattn/go-isatty.v0"
diff --git a/security/vuls/pkg-descr b/security/vuls/pkg-descr
new file mode 100644
index 000000000000..04eb4efdb6ea
--- /dev/null
+++ b/security/vuls/pkg-descr
@@ -0,0 +1,12 @@
+Vuls is an agentless vulnerability scanner written in golang.
+It can scan localhost or remote hosts via SSH. Vuls has a Terminal-Based User
+Interface(TUI) to display the scan results.
+
+Vuls' features include:
+- scan for vulnerabilitie in Ubuntu, Debian, CentOS, Amazon Linux, RHEL, Oracle
+ Linux, FreeBSD and Raspbian;
+- scan middleware that are not included in OS package management;
+- nondestructive testing;
+- email and slack notification.
+
+WWW: https://github.com/future-architect/vuls
diff --git a/security/vuls/pkg-message b/security/vuls/pkg-message
new file mode 100644
index 000000000000..f30dca9b970d
--- /dev/null
+++ b/security/vuls/pkg-message
@@ -0,0 +1,5 @@
+===============================================================================
+
+Vuls requires the cve.sqlite3 database provided by go-cve-dictionary
+
+===============================================================================