diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 3aa94e479..b3094af00 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -4,6 +4,7 @@
+
\ No newline at end of file
diff --git a/tools/log4shell/Makefile b/tools/log4shell/Makefile
index 289ce715e..e5c820476 100644
--- a/tools/log4shell/Makefile
+++ b/tools/log4shell/Makefile
@@ -9,7 +9,7 @@ payload:
cli:
touch ${LIBRARY_HASHES}
- go build -o ${BINARY_NAME} .
+ CGO_ENABLED=0 GOOS=linux go build -o ${BINARY_NAME} .
library-hashes: cli
./log4shell analyze --output ${LIBRARY_HASHES} test/vulnerable-log4j2-versions/apache test/vulnerable-log4j2-versions/target/dependency
diff --git a/tools/log4shell/analyze/analyze.go b/tools/log4shell/analyze/analyze.go
index 68afa27a9..48690414c 100644
--- a/tools/log4shell/analyze/analyze.go
+++ b/tools/log4shell/analyze/analyze.go
@@ -15,6 +15,7 @@
package analyze
import (
+ "archive/zip"
"github.com/blang/semver/v4"
"github.com/lunasec-io/lunasec/tools/log4shell/constants"
"github.com/lunasec-io/lunasec/tools/log4shell/types"
@@ -96,7 +97,35 @@ func fileNameToSemver(fileNameNoExt string) string {
return semverVersion
}
-func ProcessArchiveFile(reader io.Reader, filePath, fileName string) (finding *types.Finding) {
+func GetJndiLookupHash(zipReader *zip.Reader, filePath string) (fileHash string) {
+ reader, err := zipReader.Open(constants.JndiLookupClasspath)
+ if err != nil {
+ log.Debug().
+ Str("fieName", constants.JndiLookupClasspath).
+ Str("path", filePath).
+ Err(err).
+ Msg("cannot find file in zip")
+ return
+ }
+ defer reader.Close()
+
+ fileHash, err = util.HexEncodedSha256FromReader(reader)
+ if err != nil {
+ log.Debug().
+ Str("fieName", constants.JndiLookupClasspath).
+ Str("path", filePath).
+ Err(err).
+ Msg("unable to hash JndiLookup.class file")
+ return
+ }
+ return
+}
+
+func ProcessArchiveFile(zipReader *zip.Reader, reader io.Reader, filePath, fileName string) (finding *types.Finding) {
+ var (
+ jndiLookupFileHash string
+ )
+
_, file := path.Split(filePath)
fileNameNoExt := strings.TrimSuffix(file, path.Ext(file))
@@ -128,26 +157,35 @@ func ProcessArchiveFile(reader io.Reader, filePath, fileName string) (finding *t
return
}
- log.Log().
- Str("path", filePath).
- Str("fileName", fileName).
- Str("fileHash", fileHash).
- Msg("identified library version")
-
if versionCve == "" {
log.Debug().
Str("hash", fileHash).
Str("version", semverVersion).
Msg("Skipping version as it is not vulnerable to any known CVE")
- return nil
+ return
}
+ if versionIsInRange(fileNameNoExt, semverVersion, constants.JndiLookupPatchFileVersions) {
+ jndiLookupFileHash = GetJndiLookupHash(zipReader, filePath)
+ }
+
+ log.Log().
+ Str("path", filePath).
+ Str("fileName", fileName).
+ Str("fileHash", fileHash).
+ Str("jndiLookupFileName", constants.JndiLookupClasspath).
+ Str("jndiLookupFileHash", jndiLookupFileHash).
+ Msg("identified library version")
+
finding = &types.Finding{
Path: filePath,
FileName: fileName,
Hash: fileHash,
+ JndiLookupFileName: constants.JndiLookupClasspath,
+ JndiLookupHash: jndiLookupFileHash,
Version: semverVersion,
CVE: versionCve,
+ Severity: constants.CveSeverityLookup[versionCve],
}
return
}
diff --git a/tools/log4shell/commands/patch.go b/tools/log4shell/commands/patch.go
new file mode 100644
index 000000000..f3d78e519
--- /dev/null
+++ b/tools/log4shell/commands/patch.go
@@ -0,0 +1,489 @@
+// Copyright 2021 by LunaSec (owned by Refinery Labs, 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.
+//
+package commands
+
+import (
+ "archive/zip"
+ "encoding/json"
+ "fmt"
+ "github.com/lunasec-io/lunasec/tools/log4shell/scan"
+ "github.com/lunasec-io/lunasec/tools/log4shell/types"
+ "github.com/lunasec-io/lunasec/tools/log4shell/util"
+ "github.com/rs/zerolog/log"
+ "github.com/urfave/cli/v2"
+ "io"
+ "io/ioutil"
+ "os"
+ "strings"
+)
+
+func scanForFindings(
+ log4jLibraryHashes []byte,
+ searchDirs []string,
+ excludeDirs []string,
+ noFollowSymlinks bool,
+) (findings []types.Finding, err error) {
+ var (
+ hashLookup types.VulnerableHashLookup
+ )
+
+ hashLookup, err = loadHashLookup(log4jLibraryHashes, "", false)
+ if err != nil {
+ return
+ }
+
+ processArchiveFile := scan.IdentifyPotentiallyVulnerableFiles(false, hashLookup)
+
+ scanner := scan.NewLog4jDirectoryScanner(
+ excludeDirs, false, noFollowSymlinks, processArchiveFile)
+
+ findings = scanner.Scan(searchDirs)
+ return
+}
+
+func loadOrScanForFindings(
+ c *cli.Context,
+ log4jLibraryHashes []byte,
+) (findings []types.Finding, err error) {
+ findingsFile := c.String("findings")
+ if findingsFile != "" {
+ var (
+ findingsContent []byte
+ findingsOutput types.FindingsOutput
+ )
+
+ findingsContent, err = ioutil.ReadFile(findingsFile)
+ if err != nil {
+ log.Error().
+ Err(err).
+ Str("findings", findingsFile).
+ Msg("Unable to open and read findings file")
+ return
+ }
+
+ err = json.Unmarshal(findingsContent, &findingsOutput)
+ if err != nil {
+ log.Error().
+ Err(err).
+ Str("findings", findingsFile).
+ Msg("Unable to unmarshal findings file")
+ return
+ }
+ findings = findingsOutput.VulnerableLibraries
+ return
+ }
+
+ searchDirs := c.Args().Slice()
+
+ excludeDirs := c.StringSlice("exclude")
+ noFollowSymlinks := c.Bool("no-follow-symlinks")
+
+ log.Info().
+ Strs("searchDirs", searchDirs).
+ Strs("excludeDirs", excludeDirs).
+ Msg("Scanning directories for vulnerable Log4j libraries.")
+
+ return scanForFindings(log4jLibraryHashes, searchDirs, excludeDirs, noFollowSymlinks)
+}
+
+func askIfShouldSkipPatch(msg string) (shouldSkip, forcePatch bool) {
+ var (
+ patchPromptResp string
+ )
+
+ for {
+ fmt.Printf("Are you sure you want to patch: %s? (y)es/(n)o/(a)ll: ", msg)
+ _, err := fmt.Scan(&patchPromptResp)
+ if err != nil {
+ log.Error().
+ Err(err).
+ Msg("Unable to process response.")
+ return true, false
+ }
+ fmt.Println()
+
+ switch patchPromptResp {
+ case "y":
+ shouldSkip = false
+ case "n":
+ shouldSkip = true
+ case "a":
+ forcePatch = true
+ default:
+ fmt.Printf("Option %s is not valid, please enter 'y', 'n', or 'a'.\n", patchPromptResp)
+ continue
+ }
+ break
+ }
+ return
+}
+
+func getHashOfZipMember(member *zip.File) (hash string) {
+ memberReader, err := member.Open()
+ if err != nil {
+ log.Warn().
+ Err(err).
+ Str("name", member.Name).
+ Msg("Unable to open zip member")
+ return
+ }
+ defer memberReader.Close()
+
+ hash, err = util.HexEncodedSha256FromReader(memberReader)
+ if err != nil {
+ log.Warn().
+ Err(err).
+ Str("name", member.Name).
+ Msg("Unable to hash zip member")
+ return
+ }
+ return
+}
+
+func getNestedZipReader(zipReader *zip.Reader, zipPath string) (nestedZipReader *zip.Reader, err error) {
+ if zipPath == "" {
+ nestedZipReader = zipReader
+ return
+ }
+
+ nestedZip, err := zipReader.Open(zipPath)
+ if err != nil {
+ log.Error().Err(err).Str("zipPath", zipPath).Msg("Unable to open nested zip path")
+ return
+ }
+ defer nestedZip.Close()
+
+ info, err := nestedZip.Stat()
+ if err != nil {
+ log.Error().Err(err).Str("zipPath", zipPath).Msg("Unable to stat nested zip")
+ return
+ }
+
+ nestedZipReader, err = util.NewZipFromReader(nestedZip, info.Size())
+ if err != nil {
+ log.Error().Err(err).Str("zipPath", zipPath).Msg("Unable to create new zip reader")
+ return
+ }
+ return
+}
+
+func head(s []string) string {
+ if len(s) > 0 {
+ return s[0]
+ }
+ return ""
+}
+
+func tail(s []string) []string {
+ if len(s) > 1 {
+ return s[1:]
+ }
+ return []string{}
+}
+
+func addFileToZip(zipWriter *zip.Writer, existingHeader zip.FileHeader, filename string) (err error) {
+ defer zipWriter.Flush()
+
+ fileToZip, err := os.Open(filename)
+ if err != nil {
+ log.Error().
+ Err(err).
+ Str("filename", filename).
+ Msg("Unable to open file")
+ return
+ }
+ defer fileToZip.Close()
+
+ // Get the file information
+ info, err := fileToZip.Stat()
+ if err != nil {
+ log.Error().
+ Err(err).
+ Str("filename", filename).
+ Msg("Unable to stat file")
+ return
+ }
+
+ existingHeader.UncompressedSize64 = uint64(info.Size())
+
+ writer, err := zipWriter.CreateHeader(&existingHeader)
+ if err != nil {
+ log.Error().
+ Err(err).
+ Str("filename", filename).
+ Msg("Unable to create zip header")
+ return
+ }
+
+ _, err = io.Copy(writer, fileToZip)
+ if err != nil {
+ log.Error().
+ Err(err).
+ Str("filename", filename).
+ Msg("Unable to copy file contents to zip writer")
+ return
+ }
+ return
+}
+
+func filterOutJndiLookupFromZip(
+ finding types.Finding,
+ zipReader *zip.Reader,
+ nestedPaths []string,
+ zipWriter *zip.Writer,
+ existingHeader zip.FileHeader,
+) (filename string, err error) {
+ validOutputFile := false
+
+ outZip, err := ioutil.TempFile(os.TempDir(), "*.zip")
+ if err != nil {
+ log.Error().
+ Str("tmpDir", os.TempDir()).
+ Err(err).
+ Msg("Unable to create temporary libraryFile")
+ return
+ }
+ defer func() {
+ outZip.Close()
+ if !validOutputFile {
+ os.Remove(outZip.Name())
+ }
+ }()
+
+ nestedZipWriter := zip.NewWriter(outZip)
+ defer nestedZipWriter.Close()
+
+ err = copyAndFilterFilesFromZip(finding, zipReader, nestedZipWriter, nestedPaths)
+ if err != nil {
+ return
+ }
+
+ if zipWriter == nil {
+ filename = outZip.Name()
+ validOutputFile = true
+ return
+ }
+
+ nestedZipWriter.Close()
+ outZip.Close()
+
+ err = addFileToZip(zipWriter, existingHeader, outZip.Name())
+ if err != nil {
+ return
+ }
+ return
+}
+
+func copyAndFilterFilesFromZip(
+ finding types.Finding,
+ zipReader *zip.Reader,
+ writer *zip.Writer,
+ nestedPaths []string,
+) (err error) {
+ defer writer.Flush()
+
+ nestedPath := head(nestedPaths)
+ for _, member := range zipReader.File {
+ if member.Name == nestedPath {
+ var nestedZipReader *zip.Reader
+
+ nestedZipReader, err = getNestedZipReader(zipReader, nestedPath)
+ if err != nil {
+ return
+ }
+
+ _, err = filterOutJndiLookupFromZip(finding, nestedZipReader, tail(nestedPaths), writer, member.FileHeader)
+ if err != nil {
+ return
+ }
+ continue
+ }
+
+ if len(nestedPaths) == 0 && member.Name == finding.JndiLookupFileName {
+ shouldSkip := false
+
+ log.Debug().
+ Str("path", finding.Path).
+ Str("zipFilePath", finding.JndiLookupFileName).
+ Msg("Found file to remove in order to patch log4j library.")
+
+ hash := getHashOfZipMember(member)
+ if hash != finding.JndiLookupHash {
+ shouldSkip, _ = askIfShouldSkipPatch(
+ fmt.Sprintf(
+ "located JndiLookup.class file hash does not match expected finding hash: \"%s\" != \"%s\" . Patching might result in unintended side effects.",
+ hash, finding.JndiLookupHash,
+ ),
+ )
+ }
+
+ if !shouldSkip {
+ continue
+ }
+
+ log.Info().
+ Str("findingPath", finding.Path).
+ Msg("Skipping library for patching")
+ }
+
+ if member.FileInfo().IsDir() {
+ _, err = writer.Create(member.Name)
+ if err != nil {
+ log.Error().
+ Err(err).
+ Str("memberName", member.Name).
+ Str("member", fmt.Sprintf("%+v", member.FileHeader)).
+ Msg("Error while copying zip dir.")
+ return
+ }
+ continue
+ }
+
+ err = writer.Copy(member)
+ if err != nil {
+ log.Error().
+ Err(err).
+ Str("memberName", member.Name).
+ Str("member", fmt.Sprintf("%+v", member.FileHeader)).
+ Msg("Error while copying zip file.")
+ return
+ }
+ }
+ return
+}
+
+func patchJavaArchive(finding types.Finding, dryRun bool) (err error) {
+ var (
+ libraryFile *os.File
+ zipReader *zip.Reader
+ )
+
+ zipPaths := strings.Split(finding.Path, "::")
+
+ fsFile := head(zipPaths)
+
+ libraryFile, err = os.Open(fsFile)
+ if err != nil {
+ log.Error().
+ Str("path", finding.Path).
+ Err(err).
+ Msg("Unable to open findings archive")
+ return
+ }
+ defer libraryFile.Close()
+
+ info, err := os.Stat(fsFile)
+ if err != nil {
+ log.Error().
+ Str("path", finding.Path).
+ Err(err).
+ Msg("Cannot stat file.")
+ return
+ }
+
+ zipReader, err = zip.NewReader(libraryFile, info.Size())
+ if err != nil {
+ log.Error().
+ Str("path", finding.Path).
+ Err(err).
+ Msg("Cannot create new zip reader for file.")
+ return
+ }
+
+ filteredLibrary, err := filterOutJndiLookupFromZip(finding, zipReader, tail(zipPaths), nil, zip.FileHeader{})
+ if err != nil {
+ return
+ }
+
+ if dryRun {
+ log.Info().
+ Str("libraryFileName", fsFile).
+ Str("fullPathToLibrary", finding.Path).
+ Msg("[Dry Run] Not completing patch process of overwriting existing library.")
+ return
+ }
+
+ _, err = util.CopyFile(filteredLibrary, fsFile)
+ if err != nil {
+ log.Error().
+ Str("outZipName", filteredLibrary).
+ Str("libraryFileName", fsFile).
+ Str("fullPathToLibrary", finding.Path).
+ Err(err).
+ Msg("Unable to replace library file with patched library file.")
+ return
+ }
+ return
+}
+
+func JavaArchivePatchCommand(
+ c *cli.Context,
+ globalBoolFlags map[string]bool,
+ log4jLibraryHashes []byte,
+) error {
+ enableGlobalFlags(c, globalBoolFlags)
+
+ findings, err := loadOrScanForFindings(c, log4jLibraryHashes)
+ if err != nil {
+ return err
+ }
+
+ log.Info().
+ Int("findingsCount", len(findings)).
+ Msg("Patching found vulnerable Log4j libraries.")
+
+ forcePatch := c.Bool("force-patch")
+ dryRun := c.Bool("dry-run")
+
+ var patchedLibraries []string
+
+ for _, finding := range findings {
+ var (
+ shouldSkip bool
+ )
+
+ if finding.JndiLookupFileName == "" {
+ log.Warn().
+ Str("path", finding.Path).
+ Err(err).
+ Msg("Finding does not have JndiLookup.class file to patch")
+ continue
+ }
+
+ if !forcePatch {
+ shouldSkip, forcePatch = askIfShouldSkipPatch(finding.Path)
+ if !forcePatch && shouldSkip {
+ log.Info().
+ Str("findingPath", finding.Path).
+ Msg("Skipping library for patching")
+ continue
+ }
+ }
+
+ err = patchJavaArchive(finding, dryRun)
+ if err != nil {
+ log.Error().
+ Str("path", finding.Path).
+ Msg("Unable to patch library successfully.")
+ continue
+ }
+ patchedLibraries = append(patchedLibraries, finding.Path)
+ }
+
+ log.Info().
+ Strs("patchedLibraries", patchedLibraries).
+ Msg("Completed patched libraries.")
+ return nil
+}
diff --git a/tools/log4shell/commands/scan.go b/tools/log4shell/commands/scan.go
index 71ea3e881..9fc54a18c 100644
--- a/tools/log4shell/commands/scan.go
+++ b/tools/log4shell/commands/scan.go
@@ -51,10 +51,11 @@ func loadHashLookup(
return
}
-func ScanCommand(c *cli.Context, globalBoolFlags map[string]bool, log4jLibraryHashes []byte) (err error) {
- enableGlobalFlags(c, globalBoolFlags)
-
- searchDirs := c.Args().Slice()
+func scanDirectoriesForVulnerableLibraries(
+ c *cli.Context,
+ searchDirs []string,
+ log4jLibraryHashes []byte,
+) (scannerFindings []types.Finding, err error) {
log.Debug().
Strs("directories", searchDirs).
Msg("scanning directories")
@@ -67,7 +68,7 @@ func ScanCommand(c *cli.Context, globalBoolFlags map[string]bool, log4jLibraryHa
hashLookup, err := loadHashLookup(log4jLibraryHashes, versionHashes, onlyScanArchives)
if err != nil {
- return err
+ return
}
processArchiveFile := scan.IdentifyPotentiallyVulnerableFiles(scanLog4j1, hashLookup)
@@ -75,7 +76,23 @@ func ScanCommand(c *cli.Context, globalBoolFlags map[string]bool, log4jLibraryHa
scanner := scan.NewLog4jDirectoryScanner(
excludeDirs, onlyScanArchives, noFollowSymlinks, processArchiveFile)
- scannerFindings := scanner.Scan(searchDirs)
+ log.Info().
+ Strs("searchDirs", searchDirs).
+ Strs("excludeDirs", excludeDirs).
+ Msg("Scanning directories for vulnerable Log4j libraries.")
+
+ scannerFindings = scanner.Scan(searchDirs)
+ return
+}
+
+func ScanCommand(c *cli.Context, globalBoolFlags map[string]bool, log4jLibraryHashes []byte) (err error) {
+ enableGlobalFlags(c, globalBoolFlags)
+
+ searchDirs := c.Args().Slice()
+ scannerFindings, err := scanDirectoriesForVulnerableLibraries(c, searchDirs, log4jLibraryHashes)
+ if err != nil {
+ return
+ }
output := c.String("output")
if output != "" {
diff --git a/tools/log4shell/constants/version.go b/tools/log4shell/constants/version.go
index 4d07c2f07..307ab23a9 100644
--- a/tools/log4shell/constants/version.go
+++ b/tools/log4shell/constants/version.go
@@ -14,4 +14,4 @@
//
package constants
-const Version = "1.4.1"
+const Version = "1.5.0"
diff --git a/tools/log4shell/constants/vulnerablehashes.go b/tools/log4shell/constants/vulnerablehashes.go
index 80aff5891..6cc418a59 100644
--- a/tools/log4shell/constants/vulnerablehashes.go
+++ b/tools/log4shell/constants/vulnerablehashes.go
@@ -23,6 +23,7 @@ import (
const (
Log4ShellCve = "CVE-2021-44228"
CtxCve = "CVE-2021-45046"
+ RecursiveDosCve = "CVE-2021-45105"
Log4j1RceCve = "CVE-2019-17571"
)
@@ -30,9 +31,14 @@ var (
CveSeverityLookup = map[string]string {
Log4ShellCve: "10.0",
CtxCve: "9.0",
+ RecursiveDosCve: "7.5",
Log4j1RceCve: "9.8",
}
+ JndiLookupPatchFileVersions = semver.MustParseRange(">=2.0.0")
+
+ JndiLookupClasspath = "org/apache/logging/log4j/core/lookup/JndiLookup.class"
+
FileVersionChecks = []types.LibraryFileVersionCheck{
{
Cve: Log4ShellCve,
@@ -41,12 +47,17 @@ var (
},
{
Cve: Log4ShellCve,
- SemverRange: semver.MustParseRange(">=2.1.0 <=2.14.1"),
+ SemverRange: semver.MustParseRange(">=2.1.0 <2.15.0"),
LibraryFile: "JndiManager.class",
},
{
Cve: CtxCve,
- SemverRange: semver.MustParseRange("=2.15.0"),
+ SemverRange: semver.MustParseRange(">=2.15.0 <2.16.0"),
+ LibraryFile: "JndiManager.class",
+ },
+ {
+ Cve: RecursiveDosCve,
+ SemverRange: semver.MustParseRange(">=2.16.0 <2.17.0"),
LibraryFile: "JndiManager.class",
},
{
diff --git a/tools/log4shell/findings.json b/tools/log4shell/findings.json
index 346b5875b..0f4df5fc1 100644
--- a/tools/log4shell/findings.json
+++ b/tools/log4shell/findings.json
@@ -1,708 +1,14 @@
{
"vulnerable_libraries": [
{
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-1.2.15/log4j-1.2.15.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "7b996623c05f1a25a57fb5b43c519c2ec02ec2e647c2b97b3407965af928c9a4",
- "version": "1.2.15",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-1.2.16/log4j-1.2.16.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "688a3dadfb1c0a08fb2a2885a356200eb74e7f0f26a197d358d74f2faf6e8f46",
- "version": "1.2.16",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-1.2.17/log4j-1.2.17.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "8ef0ebdfbf28ec14b2267e6004a8eea947b4411d3c30d228a7b48fae36431d74",
- "version": "1.2.17",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-beta9-bin/log4j-core-2.0-beta9.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
- "version": "2.0.0-beta9, 2.0.0-rc1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-beta9-osgi-bin/log4j-core-osgi-reduced-2.0-beta9.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
- "version": "2.0.0-beta9, 2.0.0-rc1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-bin/log4j-core-2.0.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "fd6c63c11f7a6b52eff04be1de3477c9ddbbc925022f7216320e6db93f1b7d29",
- "version": "2.0.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-rc1-bin/log4j-core-2.0-rc1.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
- "version": "2.0.0-beta9, 2.0.0-rc1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-rc1-osgi-bin/log4j-core-osgi-reduced-2.0-rc1.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
- "version": "2.0.0-beta9, 2.0.0-rc1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-rc2-bin/log4j-core-2.0-rc2.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "a03e538ed25eff6c4fe48aabc5514e5ee687542f29f2206256840e74ed59bcd2",
- "version": "2.0.0-rc2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0.1-bin/log4j-core-2.0.1.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "964fa0bf8c045097247fa0c973e0c167df08720409fd9e44546e0ceda3925f3e",
- "version": "2.0.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0.2-bin/log4j-core-2.0.2.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "9626798cce6abd0f2ffef89f1a3d0092a60d34a837a02bbe571dbe00236a2c8c",
- "version": "2.0.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.1-bin/log4j-core-2.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
- "version": "2.1.0, 2.2.0, 2.3.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.10.0-bin/log4j-core-2.10.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.11.0-bin/log4j-core-2.11.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.11.1-bin/log4j-core-2.11.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.11.2-bin/log4j-core-2.11.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.12.0-bin/log4j-core-2.12.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1fa92c00fa0b305b6bbe6e2ee4b012b588a906a20a05e135cbe64c9d77d676de",
- "version": "2.12.0, 2.12.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.12.1-bin/log4j-core-2.12.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1fa92c00fa0b305b6bbe6e2ee4b012b588a906a20a05e135cbe64c9d77d676de",
- "version": "2.12.0, 2.12.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.12.2-bin/log4j-core-2.12.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "b1960d63a3946f9e16e1920624f37c152b58b98932ed04df99ed5d9486732afb",
- "version": "2.12.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.13.0-bin/log4j-core-2.13.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
- "version": "2.13.0, 2.13.1, 2.13.2, 2.13.3",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.13.1-bin/log4j-core-2.13.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
- "version": "2.13.0, 2.13.1, 2.13.2, 2.13.3",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.13.2-bin/log4j-core-2.13.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
- "version": "2.13.0, 2.13.1, 2.13.2, 2.13.3",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.13.3-bin/log4j-core-2.13.3.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
- "version": "2.13.0, 2.13.1, 2.13.2, 2.13.3",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.14.0-bin/log4j-core-2.14.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "77323460255818f4cbfe180141d6001bfb575b429e00a07cbceabd59adf334d6",
- "version": "2.14.0, 2.14.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.14.1-bin/log4j-core-2.14.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "77323460255818f4cbfe180141d6001bfb575b429e00a07cbceabd59adf334d6",
- "version": "2.14.0, 2.14.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.15.0-bin/log4j-core-2.15.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "db07ef1ea174e000b379732681bd835cfede648a7971bf4e9a0d31981582d69e",
- "version": "2.15.0",
- "cve": "CVE-2021-45046",
- "severity": "3.7"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.2-bin/log4j-core-2.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
- "version": "2.1.0, 2.2.0, 2.3.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.3-bin/log4j-core-2.3.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
- "version": "2.1.0, 2.2.0, 2.3.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.4-bin/log4j-core-2.4.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
- "version": "2.4.0, 2.4.1, 2.5.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.4.1-bin/log4j-core-2.4.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
- "version": "2.4.0, 2.4.1, 2.5.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.5-bin/log4j-core-2.5.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
- "version": "2.4.0, 2.4.1, 2.5.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.6-bin/log4j-core-2.6.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
- "version": "2.6.0, 2.6.1, 2.6.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.6.1-bin/log4j-core-2.6.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
- "version": "2.6.0, 2.6.1, 2.6.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.6.2-bin/log4j-core-2.6.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
- "version": "2.6.0, 2.6.1, 2.6.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.7-bin/log4j-core-2.7.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
- "version": "2.7.0, 2.8.0, 2.8.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.8-bin/log4j-core-2.8.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
- "version": "2.7.0, 2.8.0, 2.8.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.8.1-bin/log4j-core-2.8.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
- "version": "2.7.0, 2.8.0, 2.8.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.8.2-bin/log4j-core-2.8.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "764b06686dbe06e3d5f6d15891250ab04073a0d1c357d114b7365c70fa8a7407",
- "version": "2.8.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.9.0-bin/log4j-core-2.9.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.9.1-bin/log4j-core-2.9.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.1/dist/lib/log4j-1.2.1.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "6adb3617902180bdf9cbcfc08b5a11f3fac2b44ef1828131296ac41397435e3d",
- "version": "1.2.1, 1.2.2, 1.2.3, 1.2.4",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.2/dist/lib/log4j-1.2.2.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "6adb3617902180bdf9cbcfc08b5a11f3fac2b44ef1828131296ac41397435e3d",
- "version": "1.2.1, 1.2.2, 1.2.3, 1.2.4",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.3/dist/lib/log4j-1.2.3.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "6adb3617902180bdf9cbcfc08b5a11f3fac2b44ef1828131296ac41397435e3d",
- "version": "1.2.1, 1.2.2, 1.2.3, 1.2.4",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.4/dist/lib/log4j-1.2.4.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "6adb3617902180bdf9cbcfc08b5a11f3fac2b44ef1828131296ac41397435e3d",
- "version": "1.2.1, 1.2.2, 1.2.3, 1.2.4",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.5/dist/lib/log4j-1.2.5.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "ed5d53deb29f737808521dd6284c2d7a873a59140e702295a80bd0f26988f53a",
- "version": "1.2.5",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.6/dist/lib/log4j-1.2.6.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "3ef93e9cb937295175b75182e42ba9a0aa94f9f8e295236c9eef914348efeef0",
- "version": "1.2.6, 1.2.7, 1.2.9",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.7/dist/lib/log4j-1.2.7.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "3ef93e9cb937295175b75182e42ba9a0aa94f9f8e295236c9eef914348efeef0",
- "version": "1.2.6, 1.2.7, 1.2.9",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.8/dist/lib/log4j-1.2.8.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "bee4a5a70843a981e47207b476f1e705c21fc90cb70e95c3b40d04a2191f33e9",
- "version": "1.2.8",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.11/dist/lib/log4j-1.2.11.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "d778227b779f8f3a2850987e3cfe6020ca26c299037fdfa7e0ac8f81385963e6",
- "version": "1.2.11",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.12/dist/lib/log4j-1.2.12.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "f3b815a2b3c74851ff1b94e414c36f576fbcdf52b82b805b2e18322b3f5fc27c",
- "version": "1.2.12",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.13/dist/lib/log4j-1.2.13.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "fbda3cfc5853ab4744b853398f2b3580505f5a7d67bfb200716ef6ae5be3c8b7",
- "version": "1.2.13, 1.2.14",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.14/dist/lib/log4j-1.2.14.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "fbda3cfc5853ab4744b853398f2b3580505f5a7d67bfb200716ef6ae5be3c8b7",
- "version": "1.2.13, 1.2.14",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.9/dist/lib/log4j-1.2.9.jar",
- "file_name": "org/apache/log4j/net/SocketNode.class",
- "hash": "3ef93e9cb937295175b75182e42ba9a0aa94f9f8e295236c9eef914348efeef0",
- "version": "1.2.6, 1.2.7, 1.2.9",
- "cve": "CVE-2019-17571",
- "severity": "9.8"
- },
- {
- "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0.1-bin/log4j-core-2.0.1.jar",
+ "path": "/home/breadchris/projects/lunasec-monorepo/tools/log4shell/test/vulnerable-log4j2-versions/apache/apache-log4j-2.0.1-bin/log4j-core-2.0.1.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "964fa0bf8c045097247fa0c973e0c167df08720409fd9e44546e0ceda3925f3e",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "964fa0bf8c045097247fa0c973e0c167df08720409fd9e44546e0ceda3925f3e",
"version": "2.0.1",
"cve": "CVE-2021-44228",
"severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0-rc1.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
- "version": "2.0.0-beta9, 2.0.0-rc1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0-rc2.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "a03e538ed25eff6c4fe48aabc5514e5ee687542f29f2206256840e74ed59bcd2",
- "version": "2.0.0-rc2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0.1.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "964fa0bf8c045097247fa0c973e0c167df08720409fd9e44546e0ceda3925f3e",
- "version": "2.0.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0.2.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "9626798cce6abd0f2ffef89f1a3d0092a60d34a837a02bbe571dbe00236a2c8c",
- "version": "2.0.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0.jar",
- "file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
- "hash": "fd6c63c11f7a6b52eff04be1de3477c9ddbbc925022f7216320e6db93f1b7d29",
- "version": "2.0.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
- "version": "2.1.0, 2.2.0, 2.3.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.10.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.11.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.11.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.11.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.12.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1fa92c00fa0b305b6bbe6e2ee4b012b588a906a20a05e135cbe64c9d77d676de",
- "version": "2.12.0, 2.12.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.12.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1fa92c00fa0b305b6bbe6e2ee4b012b588a906a20a05e135cbe64c9d77d676de",
- "version": "2.12.0, 2.12.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.12.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "b1960d63a3946f9e16e1920624f37c152b58b98932ed04df99ed5d9486732afb",
- "version": "2.12.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.13.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
- "version": "2.13.0, 2.13.1, 2.13.2, 2.13.3",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.13.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
- "version": "2.13.0, 2.13.1, 2.13.2, 2.13.3",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.13.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
- "version": "2.13.0, 2.13.1, 2.13.2, 2.13.3",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.13.3.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
- "version": "2.13.0, 2.13.1, 2.13.2, 2.13.3",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.14.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "77323460255818f4cbfe180141d6001bfb575b429e00a07cbceabd59adf334d6",
- "version": "2.14.0, 2.14.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.14.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "77323460255818f4cbfe180141d6001bfb575b429e00a07cbceabd59adf334d6",
- "version": "2.14.0, 2.14.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.15.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "db07ef1ea174e000b379732681bd835cfede648a7971bf4e9a0d31981582d69e",
- "version": "2.15.0",
- "cve": "CVE-2021-45046",
- "severity": "3.7"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
- "version": "2.1.0, 2.2.0, 2.3.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.3.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
- "version": "2.1.0, 2.2.0, 2.3.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.4.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
- "version": "2.4.0, 2.4.1, 2.5.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.4.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
- "version": "2.4.0, 2.4.1, 2.5.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.5.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
- "version": "2.4.0, 2.4.1, 2.5.0",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.6.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
- "version": "2.6.0, 2.6.1, 2.6.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.6.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
- "version": "2.6.0, 2.6.1, 2.6.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.6.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
- "version": "2.6.0, 2.6.1, 2.6.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.7.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
- "version": "2.7.0, 2.8.0, 2.8.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.8.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
- "version": "2.7.0, 2.8.0, 2.8.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.8.2.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "764b06686dbe06e3d5f6d15891250ab04073a0d1c357d114b7365c70fa8a7407",
- "version": "2.8.2",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.8.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
- "version": "2.7.0, 2.8.0, 2.8.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.9.0.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
- },
- {
- "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.9.1.jar",
- "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
- "hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
- "version": "2.10.0, 2.11.0, 2.11.1, 2.11.2, 2.9.0, 2.9.1",
- "cve": "CVE-2021-44228",
- "severity": "10.0"
}
]
}
\ No newline at end of file
diff --git a/tools/log4shell/log4j-library-hashes.json b/tools/log4shell/log4j-library-hashes.json
index bfc6d6ec9..311b00ed1 100644
--- a/tools/log4shell/log4j-library-hashes.json
+++ b/tools/log4shell/log4j-library-hashes.json
@@ -4,610 +4,891 @@
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-1.2.15/log4j-1.2.15.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "7b996623c05f1a25a57fb5b43c519c2ec02ec2e647c2b97b3407965af928c9a4",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.15",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-1.2.16/log4j-1.2.16.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "688a3dadfb1c0a08fb2a2885a356200eb74e7f0f26a197d358d74f2faf6e8f46",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.16",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-1.2.17/log4j-1.2.17.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "8ef0ebdfbf28ec14b2267e6004a8eea947b4411d3c30d228a7b48fae36431d74",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.17",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-beta9-bin/log4j-core-2.0-beta9.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "2.0.0-beta9",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-beta9-osgi-bin/log4j-core-osgi-reduced-2.0-beta9.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "2.0.0-beta9",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-bin/log4j-core-2.0.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "fd6c63c11f7a6b52eff04be1de3477c9ddbbc925022f7216320e6db93f1b7d29",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "fd6c63c11f7a6b52eff04be1de3477c9ddbbc925022f7216320e6db93f1b7d29",
"version": "2.0.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-rc1-bin/log4j-core-2.0-rc1.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "2.0.0-rc1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-rc1-osgi-bin/log4j-core-osgi-reduced-2.0-rc1.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "2.0.0-rc1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0-rc2-bin/log4j-core-2.0-rc2.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "a03e538ed25eff6c4fe48aabc5514e5ee687542f29f2206256840e74ed59bcd2",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "2.0.0-rc2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0.1-bin/log4j-core-2.0.1.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "964fa0bf8c045097247fa0c973e0c167df08720409fd9e44546e0ceda3925f3e",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "964fa0bf8c045097247fa0c973e0c167df08720409fd9e44546e0ceda3925f3e",
"version": "2.0.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.0.2-bin/log4j-core-2.0.2.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "9626798cce6abd0f2ffef89f1a3d0092a60d34a837a02bbe571dbe00236a2c8c",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "9626798cce6abd0f2ffef89f1a3d0092a60d34a837a02bbe571dbe00236a2c8c",
"version": "2.0.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.1-bin/log4j-core-2.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a768e5383990b512f9d4f97217eda94031c2fa4aea122585f5a475ab99dc7307",
"version": "2.1.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.10.0-bin/log4j-core-2.10.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.10.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.11.0-bin/log4j-core-2.11.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.11.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.11.1-bin/log4j-core-2.11.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.11.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.11.2-bin/log4j-core-2.11.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.11.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.12.0-bin/log4j-core-2.12.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1fa92c00fa0b305b6bbe6e2ee4b012b588a906a20a05e135cbe64c9d77d676de",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "5c104d16ff9831b456e4d7eaf66bcf531f086767782d08eece3fb37e40467279",
"version": "2.12.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.12.1-bin/log4j-core-2.12.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1fa92c00fa0b305b6bbe6e2ee4b012b588a906a20a05e135cbe64c9d77d676de",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "5c104d16ff9831b456e4d7eaf66bcf531f086767782d08eece3fb37e40467279",
"version": "2.12.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.12.2-bin/log4j-core-2.12.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "b1960d63a3946f9e16e1920624f37c152b58b98932ed04df99ed5d9486732afb",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "febbc7867784d0f06934fec59df55ee45f6b24c55b17fff71cc4fca80bf22ebb",
"version": "2.12.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.13.0-bin/log4j-core-2.13.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "2b32bfc0556ea59307b9b2fde75b6dfbb5bf4f1d008d1402bc9a2357d8a8c61f",
"version": "2.13.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.13.1-bin/log4j-core-2.13.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "2b32bfc0556ea59307b9b2fde75b6dfbb5bf4f1d008d1402bc9a2357d8a8c61f",
"version": "2.13.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.13.2-bin/log4j-core-2.13.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "2b32bfc0556ea59307b9b2fde75b6dfbb5bf4f1d008d1402bc9a2357d8a8c61f",
"version": "2.13.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.13.3-bin/log4j-core-2.13.3.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "2b32bfc0556ea59307b9b2fde75b6dfbb5bf4f1d008d1402bc9a2357d8a8c61f",
"version": "2.13.3",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.14.0-bin/log4j-core-2.14.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "77323460255818f4cbfe180141d6001bfb575b429e00a07cbceabd59adf334d6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "84057480ba7da6fb6d9ea50c53a00848315833c1f34bf8f4a47f11a14499ae3f",
"version": "2.14.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.14.1-bin/log4j-core-2.14.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "77323460255818f4cbfe180141d6001bfb575b429e00a07cbceabd59adf334d6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "84057480ba7da6fb6d9ea50c53a00848315833c1f34bf8f4a47f11a14499ae3f",
"version": "2.14.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.15.0-bin/log4j-core-2.15.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "db07ef1ea174e000b379732681bd835cfede648a7971bf4e9a0d31981582d69e",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "84057480ba7da6fb6d9ea50c53a00848315833c1f34bf8f4a47f11a14499ae3f",
"version": "2.15.0",
- "cve": "CVE-2021-45046"
+ "cve": "CVE-2021-45046",
+ "severity": "9.0"
+ },
+ {
+ "path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.16.0-bin/log4j-core-2.16.0.jar",
+ "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
+ "hash": "5210e6aae7dd8a61cd16c56937c5f2ed43941487830f46e99d0d3f45bfa6f953",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "84057480ba7da6fb6d9ea50c53a00848315833c1f34bf8f4a47f11a14499ae3f",
+ "version": "2.16.0",
+ "cve": "CVE-2021-45105",
+ "severity": "7.5"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.2-bin/log4j-core-2.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a768e5383990b512f9d4f97217eda94031c2fa4aea122585f5a475ab99dc7307",
"version": "2.2.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.3-bin/log4j-core-2.3.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a768e5383990b512f9d4f97217eda94031c2fa4aea122585f5a475ab99dc7307",
"version": "2.3.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.4-bin/log4j-core-2.4.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a534961bbfce93966496f86c9314f46939fd082bb89986b48b7430c3bea903f7",
"version": "2.4.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.4.1-bin/log4j-core-2.4.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a534961bbfce93966496f86c9314f46939fd082bb89986b48b7430c3bea903f7",
"version": "2.4.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.5-bin/log4j-core-2.5.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a534961bbfce93966496f86c9314f46939fd082bb89986b48b7430c3bea903f7",
"version": "2.5.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.6-bin/log4j-core-2.6.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "e8ffed196e04f81b015f847d4ec61f22f6731c11b5a21b1cfc45ccbc58b8ea45",
"version": "2.6.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.6.1-bin/log4j-core-2.6.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "e8ffed196e04f81b015f847d4ec61f22f6731c11b5a21b1cfc45ccbc58b8ea45",
"version": "2.6.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.6.2-bin/log4j-core-2.6.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "e8ffed196e04f81b015f847d4ec61f22f6731c11b5a21b1cfc45ccbc58b8ea45",
"version": "2.6.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.7-bin/log4j-core-2.7.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "cee2305065bb61d434cdb45cfdaa46e7da148e5c6a7678d56f3e3dc8d7073eae",
"version": "2.7.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.8-bin/log4j-core-2.8.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "66c89e2d5ae674641138858b571e65824df6873abb1677f7b2ef5c0dd4dbc442",
"version": "2.8.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.8.1-bin/log4j-core-2.8.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "66c89e2d5ae674641138858b571e65824df6873abb1677f7b2ef5c0dd4dbc442",
"version": "2.8.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.8.2-bin/log4j-core-2.8.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "764b06686dbe06e3d5f6d15891250ab04073a0d1c357d114b7365c70fa8a7407",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "d4ec57440cd6db6eaf6bcb6b197f1cbaf5a3e26253d59578d51db307357cbf15",
"version": "2.8.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.9.0-bin/log4j-core-2.9.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.9.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/apache-log4j-2.9.1-bin/log4j-core-2.9.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.9.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.1/dist/lib/log4j-1.2.1.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "6adb3617902180bdf9cbcfc08b5a11f3fac2b44ef1828131296ac41397435e3d",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.1",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.2/dist/lib/log4j-1.2.2.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "6adb3617902180bdf9cbcfc08b5a11f3fac2b44ef1828131296ac41397435e3d",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.2",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.3/dist/lib/log4j-1.2.3.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "6adb3617902180bdf9cbcfc08b5a11f3fac2b44ef1828131296ac41397435e3d",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.3",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.4/dist/lib/log4j-1.2.4.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "6adb3617902180bdf9cbcfc08b5a11f3fac2b44ef1828131296ac41397435e3d",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.4",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.5/dist/lib/log4j-1.2.5.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "ed5d53deb29f737808521dd6284c2d7a873a59140e702295a80bd0f26988f53a",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.5",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.6/dist/lib/log4j-1.2.6.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "3ef93e9cb937295175b75182e42ba9a0aa94f9f8e295236c9eef914348efeef0",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.6",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.7/dist/lib/log4j-1.2.7.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "3ef93e9cb937295175b75182e42ba9a0aa94f9f8e295236c9eef914348efeef0",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.7",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/jakarta-log4j-1.2.8/dist/lib/log4j-1.2.8.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "bee4a5a70843a981e47207b476f1e705c21fc90cb70e95c3b40d04a2191f33e9",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.8",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.11/dist/lib/log4j-1.2.11.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "d778227b779f8f3a2850987e3cfe6020ca26c299037fdfa7e0ac8f81385963e6",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.11",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.12/dist/lib/log4j-1.2.12.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "f3b815a2b3c74851ff1b94e414c36f576fbcdf52b82b805b2e18322b3f5fc27c",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.12",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.13/dist/lib/log4j-1.2.13.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "fbda3cfc5853ab4744b853398f2b3580505f5a7d67bfb200716ef6ae5be3c8b7",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.13",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.14/dist/lib/log4j-1.2.14.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "fbda3cfc5853ab4744b853398f2b3580505f5a7d67bfb200716ef6ae5be3c8b7",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.14",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/apache/logging-log4j-1.2.9/dist/lib/log4j-1.2.9.jar",
"file_name": "org/apache/log4j/net/SocketNode.class",
"hash": "3ef93e9cb937295175b75182e42ba9a0aa94f9f8e295236c9eef914348efeef0",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "1.2.9",
- "cve": "CVE-2019-17571"
+ "cve": "CVE-2019-17571",
+ "severity": "9.8"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0-rc1.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "39a495034d37c7934b64a9aa686ea06b61df21aa222044cc50a47d6903ba1ca8",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "2.0.0-rc1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0-rc2.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "a03e538ed25eff6c4fe48aabc5514e5ee687542f29f2206256840e74ed59bcd2",
+ "jndi_lookup_file_name": "",
+ "jndi_lookup_hash": "",
"version": "2.0.0-rc2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0.1.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "964fa0bf8c045097247fa0c973e0c167df08720409fd9e44546e0ceda3925f3e",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "964fa0bf8c045097247fa0c973e0c167df08720409fd9e44546e0ceda3925f3e",
"version": "2.0.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0.2.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "9626798cce6abd0f2ffef89f1a3d0092a60d34a837a02bbe571dbe00236a2c8c",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "9626798cce6abd0f2ffef89f1a3d0092a60d34a837a02bbe571dbe00236a2c8c",
"version": "2.0.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.0.jar",
"file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
"hash": "fd6c63c11f7a6b52eff04be1de3477c9ddbbc925022f7216320e6db93f1b7d29",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "fd6c63c11f7a6b52eff04be1de3477c9ddbbc925022f7216320e6db93f1b7d29",
"version": "2.0.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a768e5383990b512f9d4f97217eda94031c2fa4aea122585f5a475ab99dc7307",
"version": "2.1.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.10.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.10.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.11.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.11.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.11.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.11.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.11.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.11.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.12.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1fa92c00fa0b305b6bbe6e2ee4b012b588a906a20a05e135cbe64c9d77d676de",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "5c104d16ff9831b456e4d7eaf66bcf531f086767782d08eece3fb37e40467279",
"version": "2.12.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.12.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1fa92c00fa0b305b6bbe6e2ee4b012b588a906a20a05e135cbe64c9d77d676de",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "5c104d16ff9831b456e4d7eaf66bcf531f086767782d08eece3fb37e40467279",
"version": "2.12.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.12.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "b1960d63a3946f9e16e1920624f37c152b58b98932ed04df99ed5d9486732afb",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "febbc7867784d0f06934fec59df55ee45f6b24c55b17fff71cc4fca80bf22ebb",
"version": "2.12.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.13.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "2b32bfc0556ea59307b9b2fde75b6dfbb5bf4f1d008d1402bc9a2357d8a8c61f",
"version": "2.13.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.13.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "2b32bfc0556ea59307b9b2fde75b6dfbb5bf4f1d008d1402bc9a2357d8a8c61f",
"version": "2.13.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.13.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "2b32bfc0556ea59307b9b2fde75b6dfbb5bf4f1d008d1402bc9a2357d8a8c61f",
"version": "2.13.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.13.3.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "c3e95da6542945c1a096b308bf65bbd7fcb96e3d201e5a2257d85d4dedc6a078",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "2b32bfc0556ea59307b9b2fde75b6dfbb5bf4f1d008d1402bc9a2357d8a8c61f",
"version": "2.13.3",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.14.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "77323460255818f4cbfe180141d6001bfb575b429e00a07cbceabd59adf334d6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "84057480ba7da6fb6d9ea50c53a00848315833c1f34bf8f4a47f11a14499ae3f",
"version": "2.14.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.14.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "77323460255818f4cbfe180141d6001bfb575b429e00a07cbceabd59adf334d6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "84057480ba7da6fb6d9ea50c53a00848315833c1f34bf8f4a47f11a14499ae3f",
"version": "2.14.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.15.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "db07ef1ea174e000b379732681bd835cfede648a7971bf4e9a0d31981582d69e",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "84057480ba7da6fb6d9ea50c53a00848315833c1f34bf8f4a47f11a14499ae3f",
"version": "2.15.0",
- "cve": "CVE-2021-45046"
+ "cve": "CVE-2021-45046",
+ "severity": "9.0"
+ },
+ {
+ "path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.16.0.jar",
+ "file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
+ "hash": "5210e6aae7dd8a61cd16c56937c5f2ed43941487830f46e99d0d3f45bfa6f953",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "84057480ba7da6fb6d9ea50c53a00848315833c1f34bf8f4a47f11a14499ae3f",
+ "version": "2.16.0",
+ "cve": "CVE-2021-45105",
+ "severity": "7.5"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a768e5383990b512f9d4f97217eda94031c2fa4aea122585f5a475ab99dc7307",
"version": "2.2.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.3.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "ae950f9435c0ef3373d4030e7eff175ee11044e584b7f205b7a9804bbe795f9c",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a768e5383990b512f9d4f97217eda94031c2fa4aea122585f5a475ab99dc7307",
"version": "2.3.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.4.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a534961bbfce93966496f86c9314f46939fd082bb89986b48b7430c3bea903f7",
"version": "2.4.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.4.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a534961bbfce93966496f86c9314f46939fd082bb89986b48b7430c3bea903f7",
"version": "2.4.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.5.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "3bff6b3011112c0b5139a5c3aa5e698ab1531a2f130e86f9e4262dd6018916d7",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "a534961bbfce93966496f86c9314f46939fd082bb89986b48b7430c3bea903f7",
"version": "2.5.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.6.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "e8ffed196e04f81b015f847d4ec61f22f6731c11b5a21b1cfc45ccbc58b8ea45",
"version": "2.6.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.6.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "e8ffed196e04f81b015f847d4ec61f22f6731c11b5a21b1cfc45ccbc58b8ea45",
"version": "2.6.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.6.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "6540d5695ddac8b0a343c2e91d58316cfdbfdc5b99c6f3f91bc381bc6f748246",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "e8ffed196e04f81b015f847d4ec61f22f6731c11b5a21b1cfc45ccbc58b8ea45",
"version": "2.6.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.7.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "cee2305065bb61d434cdb45cfdaa46e7da148e5c6a7678d56f3e3dc8d7073eae",
"version": "2.7.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.8.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "66c89e2d5ae674641138858b571e65824df6873abb1677f7b2ef5c0dd4dbc442",
"version": "2.8.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.8.2.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "764b06686dbe06e3d5f6d15891250ab04073a0d1c357d114b7365c70fa8a7407",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "d4ec57440cd6db6eaf6bcb6b197f1cbaf5a3e26253d59578d51db307357cbf15",
"version": "2.8.2",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.8.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "1584b839cfceb33a372bb9e6f704dcea9701fa810a9ba1ad3961615a5b998c32",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "66c89e2d5ae674641138858b571e65824df6873abb1677f7b2ef5c0dd4dbc442",
"version": "2.8.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.9.0.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.9.0",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
},
{
"path": "test/vulnerable-log4j2-versions/target/dependency/log4j-core-2.9.1.jar",
"file_name": "org/apache/logging/log4j/core/net/JndiManager.class",
"hash": "293d7e83d4197f0496855f40a7745cfcdd10026dc057dfc1816de57295be88a6",
+ "jndi_lookup_file_name": "org/apache/logging/log4j/core/lookup/JndiLookup.class",
+ "jndi_lookup_hash": "0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e",
"version": "2.9.1",
- "cve": "CVE-2021-44228"
+ "cve": "CVE-2021-44228",
+ "severity": "10.0"
}
]
}
\ No newline at end of file
diff --git a/tools/log4shell/main.go b/tools/log4shell/main.go
index f26031856..a626ac734 100644
--- a/tools/log4shell/main.go
+++ b/tools/log4shell/main.go
@@ -23,6 +23,26 @@ import (
"os"
)
+func enableGlobalFlags(c *cli.Context) {
+ verbose := c.Bool("verbose")
+ debug := c.Bool("debug")
+
+ if verbose || debug {
+ zerolog.SetGlobalLevel(zerolog.DebugLevel)
+ }
+
+ if debug {
+ // include file and line number when logging
+ log.Logger = log.With().Caller().Logger()
+ }
+
+ jsonFlag := c.Bool("json")
+ if !jsonFlag {
+ // pretty print output to the console if we are not interested in parsable output
+ log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
+ }
+}
+
func main() {
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
@@ -72,9 +92,10 @@ func main() {
},
Commands: []*cli.Command{
{
- Name: "analyze",
- Usage: "Scan known vulnerable Log4j dependencies and create a mapping of JndiLookup.class hash to version.",
- Before: setGlobalBoolFlags,
+ Name: "analyze",
+ Aliases: []string{"a"},
+ Usage: "Note: This command is not used for scanning for vulnerable libraries, use the `scan` command. Analyze known vulnerable Log4j dependencies and create a mapping of JndiLookup.class hash to version.",
+ Before: setGlobalBoolFlags,
Flags: []cli.Flag{
&cli.StringFlag{
Name: "output",
@@ -139,7 +160,7 @@ func main() {
},
{
Name: "livepatch",
- Aliases: []string{"s"},
+ Aliases: []string{"l"},
Usage: "Perform a live patch of a system by exploiting the log4shell vulnerability for immediate mitigation. The payload executed patches the running process to prevent further payloads from being able to be executed.",
Before: setGlobalBoolFlags,
Flags: []cli.Flag{
@@ -160,6 +181,45 @@ func main() {
return commands.LivePatchCommand(c, globalBoolFlags, hotpatchFiles)
},
},
+ {
+ Name: "patch",
+ Aliases: []string{"p"},
+ Usage: "Patches findings of libraries vulnerable toLog4Shell by removing the JndiLookup.class file from each.",
+ Before: setGlobalBoolFlags,
+ Flags: []cli.Flag{
+ &cli.StringSliceFlag{
+ Name: "exclude",
+ Usage: "Exclude subdirectories from scanning. This can be helpful if there are directories which your user does not have access to when starting a scan from `/`.",
+ },
+ &cli.BoolFlag{
+ Name: "no-follow-symlinks",
+ Usage: "Disable the resolution of symlinks while scanning. Note: symlinks might resolve to files outside of the included directories and so this option might be useful if you strictly want to search in said directories.",
+ },
+ &cli.BoolFlag{
+ Name: "force-patch",
+ Usage: "Force patch all libraries reported in findings or scanned at runtime. Do not prompt each time a library is about to be patched.",
+ },
+ &cli.BoolFlag{
+ Name: "dry-run",
+ Usage: "Perform a dry run of the patching process by only logging out actions which would be performed.",
+ },
+ &cli.StringFlag{
+ Name: "findings",
+ Usage: "Patches all vulnerable Java archives which have been identified.",
+ },
+ &cli.BoolFlag{
+ Name: "json",
+ Usage: "Display findings in json format.",
+ },
+ &cli.BoolFlag{
+ Name: "debug",
+ Usage: "Display helpful information while debugging the CLI.",
+ },
+ },
+ Action: func(c *cli.Context) error {
+ return commands.JavaArchivePatchCommand(c, globalBoolFlags, log4jLibraryHashes)
+ },
+ },
},
}
err := app.Run(os.Args)
diff --git a/tools/log4shell/patch/archivepatch.go b/tools/log4shell/patch/archivepatch.go
new file mode 100644
index 000000000..3e85df338
--- /dev/null
+++ b/tools/log4shell/patch/archivepatch.go
@@ -0,0 +1,15 @@
+// Copyright 2021 by LunaSec (owned by Refinery Labs, 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.
+//
+package patch
diff --git a/tools/log4shell/scan/loadversions.go b/tools/log4shell/scan/loadversions.go
index 296c5be47..67f16bc35 100644
--- a/tools/log4shell/scan/loadversions.go
+++ b/tools/log4shell/scan/loadversions.go
@@ -80,16 +80,26 @@ func LoadVersionHashesFromBytes(versionHashesContent []byte) (hashLookup types.V
newVersion += ", " + vulnerableLibrary.Version
}
+ existingLookup.VulnerableFileHashLookup[vulnerableLibrary.JndiLookupHash] = types.VulnerableFile{
+ FileName: vulnerableLibrary.JndiLookupFileName,
+ }
+
hashLookup[vulnerableLibrary.Hash] = types.VulnerableHash{
Name: vulnerableLibrary.Path + "::" + vulnerableLibrary.FileName,
Version: newVersion,
CVE: vulnerableLibrary.CVE,
+ VulnerableFileHashLookup: existingLookup.VulnerableFileHashLookup,
}
} else {
hashLookup[vulnerableLibrary.Hash] = types.VulnerableHash{
Name: vulnerableLibrary.Path + "::" + vulnerableLibrary.FileName,
Version: vulnerableLibrary.Version,
CVE: vulnerableLibrary.CVE,
+ VulnerableFileHashLookup: map[string]types.VulnerableFile{
+ vulnerableLibrary.Hash: {
+ vulnerableLibrary.JndiLookupFileName,
+ },
+ },
}
}
}
diff --git a/tools/log4shell/scan/scan.go b/tools/log4shell/scan/scan.go
index 1e3d6399e..c738956ad 100644
--- a/tools/log4shell/scan/scan.go
+++ b/tools/log4shell/scan/scan.go
@@ -126,7 +126,7 @@ func (s *Log4jDirectoryScanner) scanLocatedArchive(
defer file.Close()
if s.onlyScanArchives {
- finding := identifyPotentiallyVulnerableFile(file, path, file.Name(), constants.KnownVulnerableArchiveFileHashes)
+ finding := identifyPotentiallyVulnerableFile(nil, file, path, file.Name(), constants.KnownVulnerableArchiveFileHashes)
if finding != nil {
return []types.Finding{*finding}
}
@@ -154,13 +154,14 @@ func (s *Log4jDirectoryScanner) scanArchiveForVulnerableFiles(
// Str("path", path).
// Str("file", zipFile.Name).
// Msg("scanning nested archive")
- locatedFindings := s.scanFile(path, zipFile)
+ locatedFindings := s.scanFile(zipReader, path, zipFile)
findings = append(findings, locatedFindings...)
}
return
}
func (s *Log4jDirectoryScanner) scanFile(
+ zipReader *zip.Reader,
path string,
file *zip.File,
) (findings []types.Finding) {
@@ -171,14 +172,14 @@ func (s *Log4jDirectoryScanner) scanFile(
return
}
- finding := s.scanArchiveFile(path, file)
+ finding := s.scanArchiveFile(zipReader, path, file)
if finding != nil {
findings = []types.Finding{*finding}
}
return
case constants.JarFileExt, constants.WarFileExt, constants.ZipFileExt, constants.EarFileExt:
if s.onlyScanArchives {
- finding := s.scanArchiveFile(path, file)
+ finding := s.scanArchiveFile(zipReader, path, file)
if finding != nil {
findings = []types.Finding{*finding}
}
@@ -191,6 +192,7 @@ func (s *Log4jDirectoryScanner) scanFile(
func (s *Log4jDirectoryScanner) scanArchiveFile(
+ zipReader *zip.Reader,
path string,
file *zip.File,
) (finding *types.Finding) {
@@ -203,7 +205,9 @@ func (s *Log4jDirectoryScanner) scanArchiveFile(
Msg("unable to open class file")
return
}
- return s.processArchiveFile(reader, path, file.Name)
+ defer reader.Close()
+
+ return s.processArchiveFile(zipReader, reader, path, file.Name)
}
func (s *Log4jDirectoryScanner) scanEmbeddedArchive(
diff --git a/tools/log4shell/scan/scanfile.go b/tools/log4shell/scan/scanfile.go
index 0843736f9..a66723188 100644
--- a/tools/log4shell/scan/scanfile.go
+++ b/tools/log4shell/scan/scanfile.go
@@ -15,23 +15,46 @@
package scan
import (
+ "archive/zip"
+ "github.com/blang/semver/v4"
+ "github.com/lunasec-io/lunasec/tools/log4shell/analyze"
"github.com/lunasec-io/lunasec/tools/log4shell/constants"
"github.com/lunasec-io/lunasec/tools/log4shell/types"
"github.com/lunasec-io/lunasec/tools/log4shell/util"
"github.com/rs/zerolog/log"
"io"
+ "path/filepath"
"strings"
)
func IdentifyPotentiallyVulnerableFiles(scanLog4j1 bool, archiveHashLookup types.VulnerableHashLookup) types.ProcessArchiveFile {
hashLookup := FilterVulnerableHashLookup(archiveHashLookup, scanLog4j1)
- return func(reader io.Reader, path, fileName string) (finding *types.Finding) {
- return identifyPotentiallyVulnerableFile(reader, path, fileName, hashLookup)
+ return func(zipReader *zip.Reader, reader io.Reader, path, fileName string) (finding *types.Finding) {
+ return identifyPotentiallyVulnerableFile(zipReader, reader, path, fileName, hashLookup)
}
}
-func identifyPotentiallyVulnerableFile(reader io.Reader, path, fileName string, hashLookup types.VulnerableHashLookup) (finding *types.Finding) {
+func isVulnerableIfContainsJndiLookup(versions []string) bool {
+ for _, version := range versions {
+ semverVersion, err := semver.Parse(version)
+ if err != nil {
+ continue
+ }
+
+ if constants.JndiLookupPatchFileVersions(semverVersion) {
+ return true
+ }
+ }
+ return false
+}
+
+func identifyPotentiallyVulnerableFile(
+ zipReader *zip.Reader,
+ reader io.Reader,
+ path, fileName string,
+ hashLookup types.VulnerableHashLookup,
+) (finding *types.Finding) {
fileHash, err := util.HexEncodedSha256FromReader(reader)
if err != nil {
log.Warn().
@@ -42,7 +65,7 @@ func identifyPotentiallyVulnerableFile(reader io.Reader, path, fileName string,
return
}
- if strings.Contains(fileName, "JndiLookup.class") {
+ if strings.HasSuffix(fileName, "JndiLookup.class") {
log.Debug().
Str("fileName", fileName).
Str("fileHash", fileHash).
@@ -57,19 +80,55 @@ func identifyPotentiallyVulnerableFile(reader io.Reader, path, fileName string,
Msg("No severity provided for CVE")
}
+ versions := strings.Split(vulnerableFile.Version, ", ")
+ patchableVersion := isVulnerableIfContainsJndiLookup(versions)
+
+ jndiLookupFileHash := analyze.GetJndiLookupHash(zipReader, path)
+ if jndiLookupFileHash != "" {
+ if _, ok := vulnerableFile.VulnerableFileHashLookup[jndiLookupFileHash]; !ok {
+ log.Warn().
+ Str("path", path).
+ Str("jndiLookupFileName", constants.JndiLookupClasspath).
+ Str("jndiLookupHash", jndiLookupFileHash).
+ Msg("Discovered JndiLookup.class file is not a known vulnerable file. Patching this file out might have some unintended side effects.")
+ }
+ } else {
+ if patchableVersion {
+ log.Warn().
+ Str("path", path).
+ Str("jndiLookupFileName", constants.JndiLookupClasspath).
+ Str("jndiLookupHash", jndiLookupFileHash).
+ Msg("Library has been patched of the Log4Shell vulnerability.")
+ return
+ }
+ }
+
log.Log().
Str("severity", severity).
Str("path", path).
- Str("fileName", fileName).
- Str("hash", fileHash).
+ Str("versionIndicatorFileName", fileName).
+ Str("versionIndicatorHash", fileHash).
+ Str("jndiLookupFileName", constants.JndiLookupClasspath).
+ Str("jndiLookupHash", jndiLookupFileHash).
Str("versionInfo", vulnerableFile.Version).
Str("cve", vulnerableFile.CVE).
Msg("Identified vulnerable path")
+ absolutePath, err := filepath.Abs(path)
+ if err != nil {
+ log.Warn().
+ Str("fileName", fileName).
+ Str("path", path).
+ Err(err).
+ Msg("Unable to resolve absolute path to file")
+ }
+
finding = &types.Finding{
- Path: path,
+ Path: absolutePath,
FileName: fileName,
Hash: fileHash,
+ JndiLookupFileName: constants.JndiLookupClasspath,
+ JndiLookupHash: jndiLookupFileHash,
Version: vulnerableFile.Version,
CVE: vulnerableFile.CVE,
Severity: severity,
diff --git a/tools/log4shell/test/vulnerable-apps/patched.jar.REMOVED.git-id b/tools/log4shell/test/vulnerable-apps/patched.jar.REMOVED.git-id
new file mode 100644
index 000000000..313638f6a
--- /dev/null
+++ b/tools/log4shell/test/vulnerable-apps/patched.jar.REMOVED.git-id
@@ -0,0 +1 @@
+172a1004a051c61f3a8abe3ea3ee002e290f15a2
\ No newline at end of file
diff --git a/tools/log4shell/test/vulnerable-apps/vulnerable.jar.REMOVED.git-id b/tools/log4shell/test/vulnerable-apps/vulnerable.jar.REMOVED.git-id
new file mode 100644
index 000000000..a346a2f42
--- /dev/null
+++ b/tools/log4shell/test/vulnerable-apps/vulnerable.jar.REMOVED.git-id
@@ -0,0 +1 @@
+0578ffb72bc2ade6a743bc18d4d2e03123a1ea64
\ No newline at end of file
diff --git a/tools/log4shell/test/vulnerable-log4j2-versions/.gitignore b/tools/log4shell/test/vulnerable-log4j2-versions/.gitignore
index 782fd9af3..d52b170dd 100644
--- a/tools/log4shell/test/vulnerable-log4j2-versions/.gitignore
+++ b/tools/log4shell/test/vulnerable-log4j2-versions/.gitignore
@@ -1,3 +1,4 @@
target/
pom.xml
apache/
+apache-patch/
diff --git a/tools/log4shell/test/vulnerable-log4j2-versions/main.go b/tools/log4shell/test/vulnerable-log4j2-versions/main.go
index 895b83fa6..e42bac9f9 100644
--- a/tools/log4shell/test/vulnerable-log4j2-versions/main.go
+++ b/tools/log4shell/test/vulnerable-log4j2-versions/main.go
@@ -30,7 +30,7 @@ import (
)
var (
- versions = []string{"2.16.0","2.15.0","2.14.1","2.14.0","2.13.3","2.13.2","2.13.1","2.13.0","2.12.2","2.12.1","2.12.0","2.11.2","2.11.1","2.11.0","2.10.0","2.9.1","2.9.0","2.8.2","2.8.1","2.8","2.7","2.6.2","2.6.1","2.6","2.5","2.4.1","2.4","2.3","2.2","2.1","2.0.2","2.0.1","2.0","2.0-rc2","2.0-rc1"}
+ versions = []string{"2.17.0","2.16.0","2.15.0","2.14.1","2.14.0","2.13.3","2.13.2","2.13.1","2.13.0","2.12.2", "2.12.1","2.12.0","2.11.2","2.11.1","2.11.0","2.10.0","2.9.1","2.9.0","2.8.2","2.8.1","2.8","2.7","2.6.2","2.6.1","2.6","2.5","2.4.1","2.4","2.3","2.2","2.1","2.0.2","2.0.1","2.0","2.0-rc2","2.0-rc1"}
)
type ArtifactId struct {
diff --git a/tools/log4shell/types/findings.go b/tools/log4shell/types/findings.go
index 82e9ccbe3..1df78a321 100644
--- a/tools/log4shell/types/findings.go
+++ b/tools/log4shell/types/findings.go
@@ -14,14 +14,19 @@
//
package types
-import "io"
+import (
+ "archive/zip"
+ "io"
+)
-type ProcessArchiveFile func(reader io.Reader, path, fileName string) (finding *Finding)
+type ProcessArchiveFile func(zipReader *zip.Reader, reader io.Reader, path, fileName string) (finding *Finding)
type Finding struct {
Path string `json:"path"`
FileName string `json:"file_name"`
Hash string `json:"hash"`
+ JndiLookupFileName string `json:"jndi_lookup_file_name"`
+ JndiLookupHash string `json:"jndi_lookup_hash"`
Version string `json:"version"`
CVE string `json:"cve"`
Severity string `json:"severity"`
diff --git a/tools/log4shell/types/vulnerablehashes.go b/tools/log4shell/types/vulnerablehashes.go
index 3f17d9a64..e4f00b3b6 100644
--- a/tools/log4shell/types/vulnerablehashes.go
+++ b/tools/log4shell/types/vulnerablehashes.go
@@ -16,10 +16,15 @@ package types
import "github.com/blang/semver/v4"
+type VulnerableFile struct {
+ FileName string `json:"file_name"`
+}
+
type VulnerableHash struct {
Name string `json:"name"`
Version string `json:"version"`
CVE string `json:"cve"`
+ VulnerableFileHashLookup map[string]VulnerableFile
}
type VulnerableHashLookup map[string]VulnerableHash
diff --git a/tools/log4shell/util/fs.go b/tools/log4shell/util/fs.go
index 1bb2d9fe7..050c6a3f4 100644
--- a/tools/log4shell/util/fs.go
+++ b/tools/log4shell/util/fs.go
@@ -15,7 +15,11 @@
package util
import (
+ "archive/zip"
+ "bytes"
"github.com/rs/zerolog/log"
+ "io"
+ "io/ioutil"
"os"
"path/filepath"
"strings"
@@ -74,3 +78,36 @@ func ResolveSymlinkFilePathAndInfo(symlinkPath string) (path string, info os.Fil
}
return
}
+
+// NewZipFromReader ...
+func NewZipFromReader(file io.ReadCloser, size int64) (*zip.Reader, error) {
+ in := file.(io.Reader)
+
+ if _, ok := in.(io.ReaderAt); ok != true {
+ buffer, err := ioutil.ReadAll(in)
+
+ if err != nil {
+ return nil, err
+ }
+
+ in = bytes.NewReader(buffer)
+ size = int64(len(buffer))
+ }
+
+ reader, err := zip.NewReader(in.(io.ReaderAt), size)
+ if err != nil {
+ return nil, err
+ }
+
+ return reader, nil
+}
+
+func CopyFile(in, out string) (int64, error) {
+ i, e := os.Open(in)
+ if e != nil { return 0, e }
+ defer i.Close()
+ o, e := os.Create(out)
+ if e != nil { return 0, e }
+ defer o.Close()
+ return io.Copy(o, i)
+}
\ No newline at end of file