From 873f6e403760c3ae95794285f2419a70005367fd Mon Sep 17 00:00:00 2001 From: Laurent Goderre Date: Fri, 5 Jan 2024 13:54:46 -0500 Subject: [PATCH] Added classifier for wordpress cli binary Signed-off-by: Laurent Goderre --- syft/pkg/cataloger/binary/cataloger_test.go | 11 +++++++++++ syft/pkg/cataloger/binary/default_classifiers.go | 11 +++++++++++ .../classifiers/positive/wp-cli-2.9.0/wp | Bin 0 -> 2531 bytes 3 files changed, 22 insertions(+) create mode 100755 syft/pkg/cataloger/binary/test-fixtures/classifiers/positive/wp-cli-2.9.0/wp diff --git a/syft/pkg/cataloger/binary/cataloger_test.go b/syft/pkg/cataloger/binary/cataloger_test.go index 26992889a..1e5870c2f 100644 --- a/syft/pkg/cataloger/binary/cataloger_test.go +++ b/syft/pkg/cataloger/binary/cataloger_test.go @@ -870,6 +870,17 @@ func Test_Cataloger_PositiveCases(t *testing.T) { Metadata: metadata("gcc-binary"), }, }, + { + logicalFixture: "wp-cli/2.9.0/linux-amd64", + expected: pkg.Package{ + Name: "wp-cli", + Version: "2.9.0", + Type: "binary", + PURL: "pkg:generic/wp-cli@2.9.0", + Locations: locations("wp"), + Metadata: metadata("wordpress-cli-binary"), + }, + }, } for _, test := range tests { diff --git a/syft/pkg/cataloger/binary/default_classifiers.go b/syft/pkg/cataloger/binary/default_classifiers.go index c0ef9de6b..ca4992919 100644 --- a/syft/pkg/cataloger/binary/default_classifiers.go +++ b/syft/pkg/cataloger/binary/default_classifiers.go @@ -403,6 +403,17 @@ func DefaultClassifiers() []Classifier { PURL: mustPURL("pkg:generic/gcc@version"), CPEs: singleCPE("cpe:2.3:a:gnu:gcc:*:*:*:*:*:*:*:*"), }, + { + Class: "wordpress-cli-binary", + FileGlob: "**/wp", + EvidenceMatcher: FileContentsVersionMatcher( + // wp-cli/wp-cli 2.9.0' + `(?m)wp-cli/wp-cli (?P[0-9]+\.[0-9]+\.[0-9]+)`, + ), + Package: "wp-cli", + PURL: mustPURL("pkg:generic/wp-cli@version"), + CPEs: singleCPE("cpe:2.3:a:wp-cli:wp-cli:*:*:*:*:*:*:*:*"), + }, } } diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/positive/wp-cli-2.9.0/wp b/syft/pkg/cataloger/binary/test-fixtures/classifiers/positive/wp-cli-2.9.0/wp new file mode 100755 index 0000000000000000000000000000000000000000..eefaec4d887d181bd98e7454d9383aad14f2dd86 GIT binary patch literal 2531 zcmb7`Td(3&6o46{##A3PCMJ_;f*H+mL{2YUdyX^X-o4Sn26{c0my=RT3oTG6P#~H3 zFZ>1m4P!Ds`R20^{ssSnyA%czo#UBicXzE-_Sd!cT5E?VUy{psPWFZq(w(gGkslG? zzewkynyUYr;B2$VN-N=N!;Bv zK+Cw}I;bnR1PvqdFP;<6|NixtM>#ybo6CKY%jF*BKE(403v0RW@V#;;{po!FmBSkm&?)kek0Kd?Km!GJ`|nlcx+GlX%Luz zmt~x~n`sPwy!`FwJ@(1H*y%X37b$4+@ez~CUtq{K1@1A`|G}gV#bi8p$c7t6cihp% z>(7tmy}ZKQ-wzI6KA6n48F_QN@6PpLIN6imKkgppWm*+We;vXuK7cDu=VN=Z$b$bArw#+~sJp40 z`iMtr!(pUX0pD*t=Ju|3=Tpax5AhQOR5*~A!fDSA^BO+G^BiD^Xa8{##q@%LB)9XN zpc%3#bHEUGRszW~rx+Xu?4<`183IpMThNgQSL!V3Rz*n+q-{-WR=1!DJ#Xd*qfS>< zd9Z~hQsabEZ+J^pB_UCG!Wao-#HkXXO@Z^0z8YAH9)ulj19{C-Ox?UyR7x~89YV{} zWP?@|OAOWx1N5NRwje-A6qKe)2_B&_>($LzjAc<-^-8LTjT;2Z*SsNAkRh)-2G}CQ z+aPO-Z7P-8(CD=-v3Q|{K(KR$fIjw%DzB9h2(m9tQNvV3-Ha3?a4_7`Eg_V2vkfi5 z^i<0-b%E7&OS?rHl}O1hOrD1tN9aKt%0fTxF^b>gpx$FxN*3A>jUa;{kl8Q*C zPmrL#gb;usU}ON5Qp;1Mw#m5k(&E;D9EF6gu~7ELiD@Y}^f0DIbyL@TLmY1EvEQx7 zz1hgBtCJDf2;MVzT3F2VxD@#X$g;y`p%6sclINNP={8&m%1t(KOO>@tD&@JU znwzVx#9bu=%4#&*91=j%NVBF<9SCm(v8^;?OC;fn*F2x?^uog2BiAxPw>S-fdb)vq zArT;%s3HP5z(GCXy&a$n)CLIwE(aVc0#k|Ove0oRdBAu8NhXKjtWI39gTkz@n0yfR zsWG!w+gnOyuXQ~NZiUbWY#C8y!|Lb~CGfPf#>*G6J?n$*2$zPu255zRy4!LWb&oKw zJ8IJOdpCVvH2DeZ4{ESn8kM8PZEJPAY>W~zq{GhDY`c}!cI2~kXT&DYo@JdNwE2Jc zL3Zlx|F7hkbM~CdGZa%Q(o~VD7!-R!Qx|2bKv5SIMc_Xh(KL4Fq+=I*%Sk_U^YnS? zyq2$3-Ey^5s!(*fUZq^up>4Zj*O+pRWo?SG8Mj<>oO*@0c