diff --git a/syft/pkg/cataloger/common/cpe/candidate_by_package_type.go b/syft/pkg/cataloger/common/cpe/candidate_by_package_type.go index bc62d390984..bc1e5fc6280 100644 --- a/syft/pkg/cataloger/common/cpe/candidate_by_package_type.go +++ b/syft/pkg/cataloger/common/cpe/candidate_by_package_type.go @@ -183,6 +183,11 @@ var defaultCandidateAdditions = buildCandidateLookup( candidateKey{PkgName: "pip"}, candidateAddition{AdditionalVendors: []string{"pypa"}}, }, + { + pkg.PythonPkg, + candidateKey{PkgName: "Django"}, + candidateAddition{AdditionalVendors: []string{"djangoproject"}}, + }, // Alpine packages { pkg.ApkPkg, diff --git a/syft/pkg/cataloger/common/cpe/generate_test.go b/syft/pkg/cataloger/common/cpe/generate_test.go index 939c2d3eb10..2e6b131d73a 100644 --- a/syft/pkg/cataloger/common/cpe/generate_test.go +++ b/syft/pkg/cataloger/common/cpe/generate_test.go @@ -896,6 +896,14 @@ func TestCandidateVendor(t *testing.T) { }, expected: []string{"apache"}, }, + { + name: "Django", + p: pkg.Package{ + Name: "Django", + Type: pkg.PythonPkg, + }, + expected: []string{"djangoproject" /* <-- known good names | default guess --> */, "Django"}, + }, } for _, test := range tests {