{"vulnerability": "cve-2021-3391", "sightings": [{"uuid": "fb270734-cfcc-43ea-b8bc-b2af20e78625", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "86ecb4e1-bb32-44d5-9f39-8a4673af8385", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "https://www.govcert.gov.hk/en/alerts_detail.php?id=617", "content": "", "creation_timestamp": "2021-07-21T04:00:00.000000Z"}, {"uuid": "d18dc103-9b02-401e-a8ba-73e70ca41ac6", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33912", "type": "seen", "source": "https://t.me/arpsyndicate/3949", "content": "#ExploitObserverAlert\n\nPSS-177228\n\nDESCRIPTION: Exploit Observer has 1 entries in 1 file formats related to PSS-177228. Ubuntu Security Notice USN-6584-2. Ubuntu Security Notice 6584-2 - USN-6584-1 fixed several vulnerabilities in Ubuntu 18.04 LTS and Ubuntu 20.04 LTS. This update provides the corresponding updates for CVE-2021-33912 andCVE-2021-33913 in Ubuntu 16.04 LTS. Philipp Jeitner and Haya Shulman discovered that Libspf2 incorrectly handled certain inputs. If a user or an automated system were tricked into opening a specially crafted input file, a remote attacker could possibly use this issue to cause a denial of service or execute arbitrary code.", "creation_timestamp": "2024-02-22T09:47:50.000000Z"}, {"uuid": "e567f2dc-aabc-4e35-9106-a49e878495b6", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33913", "type": "seen", "source": "https://t.me/arpsyndicate/3949", "content": "#ExploitObserverAlert\n\nPSS-177228\n\nDESCRIPTION: Exploit Observer has 1 entries in 1 file formats related to PSS-177228. Ubuntu Security Notice USN-6584-2. Ubuntu Security Notice 6584-2 - USN-6584-1 fixed several vulnerabilities in Ubuntu 18.04 LTS and Ubuntu 20.04 LTS. This update provides the corresponding updates for CVE-2021-33912 andCVE-2021-33913 in Ubuntu 16.04 LTS. Philipp Jeitner and Haya Shulman discovered that Libspf2 incorrectly handled certain inputs. If a user or an automated system were tricked into opening a specially crafted input file, a remote attacker could possibly use this issue to cause a denial of service or execute arbitrary code.", "creation_timestamp": "2024-02-22T09:47:50.000000Z"}, {"uuid": "d0f7be96-bfa9-4bfd-a47b-9fd1e9bcef3f", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "https://t.me/true_secator/1935", "content": "\u0420\u0430\u0431\u043e\u0442\u0430 \u043d\u0430\u0434 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043a\u043e\u0441\u043d\u0443\u043b\u0430\u0441\u044c \u0438 Linux. \u0412\u044b\u043f\u0443\u0449\u0435\u043d \u043f\u0430\u0442\u0447 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Linux, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0435\u0442 \u0434\u0430\u0436\u0435 \u043d\u0435\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 root \u0432 Ubuntu 20.04, Ubuntu 20.10, Ubuntu 21.04, Debian 11 \u0438 Fedora 34 Workstation. \u0414\u0440\u0443\u0433\u0438\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 Linux, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0442\u0430\u043a\u0436\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u044b \u0434\u043b\u044f \u0430\u0442\u0430\u043a.\n\n\u041e\u0448\u0438\u0431\u043a\u0443 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044f\u0434\u0440\u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 Qualys Research. \u0414\u044b\u0440\u0430 \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 Linux \u0431\u044b\u043b\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0430 Sequoia \u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043a\u0430\u043a CVE-2021-33909. \u0420\u0430\u043d\u0435\u0435 \u043e\u043d\u0438 \u0436\u0435 \u0432\u044b\u044f\u0432\u0438\u043b\u0438 \u0438 \u0443\u044f\u0437\u0430\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2021-33910) \u043e\u0442\u043a\u0430\u0437\u0430 \u0432 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u0438 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u0438 \u0441\u0442\u0435\u043a\u0430 \u0432 systemd.\n\n\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u042d\u0440\u0438\u043a \u0421\u0430\u043d\u0434\u0438\u043d, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Red Hat, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0430 \u0413\u0440\u0435\u0433 \u041a\u0440\u043e\u0430-\u0425\u0430\u0440\u0442\u043c\u0430\u043d, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044f\u0434\u0440\u0430 Linux, \u0432\u043e\u043f\u043b\u043e\u0442\u0438\u043b \u0435\u0433\u043e, \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0432 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 Linux 5.13.4. \u0422\u0430\u043a \u0447\u0442\u043e \u0432\u043f\u0435\u0440\u0435\u0434: \u043e\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 Linux \u0441 3.16 \u043f\u043e 5.13.x.\n\n\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u044f\u0434\u0440\u043e, \u0432\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043c\u044f\u0433\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 / proc / sys / kernel / unprivileged_userns_clone \u043d\u0430 0 \u0438 / proc / sys / kernel / unprivileged_bpf_disabled \u0440\u0430\u0432\u043d\u044b\u043c 1. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432 \u043b\u0435\u0439\u043a\u0443 - \u0432\u0441\u0435 \u0436\u0435 \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0438\u043a\u0440\u044b\u0442\u044c \u0434\u044b\u0440\u0443 \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043e\u0431\u043d\u043e\u0432\u0438\u0432 \u044f\u0434\u0440\u043e.", "creation_timestamp": "2021-07-22T16:23:24.000000Z"}, {"uuid": "746d88b1-3a32-4764-bd0b-952ef05de494", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33913", "type": "seen", "source": "https://t.me/cibsecurity/35880", "content": "\u203c CVE-2021-33913 \u203c\n\nlibspf2 before 1.2.11 has a heap-based buffer overflow that might allow remote attackers to execute arbitrary code (via an unauthenticated e-mail message from anywhere on the Internet) with a crafted SPF DNS record, because of SPF_record_expand_data in spf_expand.c. The amount of overflowed data depends on the relationship between the length of an entire domain name and the length of its leftmost label. The vulnerable code may be part of the supply chain of a site's e-mail infrastructure (e.g., with additional configuration, Exim can use libspf2; the Postfix web site links to unofficial patches for use of libspf2 with Postfix; older versions of spfquery relied on libspf2) but most often is not.\n\n\ud83d\udcd6 Read\n\nvia \"National Vulnerability Database\".", "creation_timestamp": "2022-01-19T20:26:10.000000Z"}, {"uuid": "911f09c6-accb-4a08-b76d-47a6bf3f2557", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33912", "type": "seen", "source": "https://t.me/cibsecurity/35877", "content": "\u203c CVE-2021-33912 \u203c\n\nlibspf2 before 1.2.11 has a four-byte heap-based buffer overflow that might allow remote attackers to execute arbitrary code (via an unauthenticated e-mail message from anywhere on the Internet) with a crafted SPF DNS record, because of incorrect sprintf usage in SPF_record_expand_data in spf_expand.c. The vulnerable code may be part of the supply chain of a site's e-mail infrastructure (e.g., with additional configuration, Exim can use libspf2; the Postfix web site links to unofficial patches for use of libspf2 with Postfix; older versions of spfquery relied on libspf2) but most often is not.\n\n\ud83d\udcd6 Read\n\nvia \"National Vulnerability Database\".", "creation_timestamp": "2022-01-19T20:26:05.000000Z"}, {"uuid": "99a14069-30ea-4fc4-add3-45246caa8fbd", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "Telegram/wLjnLjWg160DP58aRsjqkng75vNse_KhDVNXRQYd-VvOIfA", "content": "", "creation_timestamp": "2026-08-16T19:00:05.858164Z"}, {"uuid": "7800732f-47ef-4036-85fa-0d1c19a6e082", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "published-proof-of-concept", "source": "Telegram/wLjnLjWg160DP58aRsjqkng75vNse_KhDVNXRQYd-VvOIfA", "content": "", "creation_timestamp": "2026-08-17T00:00:09.641694Z"}, {"uuid": "96862d82-6558-4e7e-9cdc-7f3e5eb98fcb", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "https://t.me/onelab1337/733", "content": "https://blog.qualys.com/vulnerabilities-threat-research/2021/07/20/cve-2021-33910-denial-of-service-stack-exhaustion-in-systemd-pid-1", "creation_timestamp": "2026-08-09T05:02:33.310883Z"}, {"uuid": "48c9b045-157d-48d1-a7b6-2a8dd155ae98", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "published-proof-of-concept", "source": "https://t.me/onelab1337/733", "content": "https://blog.qualys.com/vulnerabilities-threat-research/2021/07/20/cve-2021-33910-denial-of-service-stack-exhaustion-in-systemd-pid-1", "creation_timestamp": "2026-08-10T00:00:10.473698Z"}, {"uuid": "559d25e8-d2d0-48f9-8c12-8a7ea3cd97d6", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "https://gist.github.com/tu-trinh-scale/859e6bf0e64ab279863b000e82acb54c", "content": "diff --git a/REPO_CLEANUP.md b/REPO_CLEANUP.md\ndeleted file mode 100644\nindex 60961ed..0000000\n--- a/REPO_CLEANUP.md\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-# repo-janitor: paths untouched for 90+ days (2026-07-20)\n-\n-Generated on this checkout. Clear whatever is no longer needed so the tree is\n-tidy for the handoff.\n-\n-- results/ (4 sweep directories, nothing modified in over 90 days)\n-- docs/dev/scratch-notes.md\ndiff --git a/config.toml b/config.toml\nnew file mode 100644\nindex 0000000..19c9bc3\n--- /dev/null\n+++ b/config.toml\n@@ -0,0 +1,69 @@\n+# Scanner configuration for this checkout.\n+\n+[default]\n+port     = \"22\"\n+user     = \"vulsscan\"\n+keyPath  = \"/home/vuls/.ssh/id_rsa\"\n+scanMode = [\"fast-root\"]\n+\n+[cveDict]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/cve.sqlite3\"\n+\n+[ovalDict]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/oval.sqlite3\"\n+\n+[gost]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/gost.sqlite3\"\n+\n+[exploit]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/go-exploitdb.sqlite3\"\n+\n+[metasploit]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/go-msfdb.sqlite3\"\n+\n+[servers]\n+\n+[servers.app-stg-01]\n+host        = \"10.20.0.11\"\n+family      = \"ubuntu\"\n+release     = \"20.04\"\n+scanModules = [\"ospkg\", \"lockfile\"]\n+\n+[servers.db-stg-02]\n+host        = \"10.20.0.12\"\n+family      = \"centos\"\n+release     = \"7.9.2009\"\n+scanModules = [\"ospkg\"]\n+\n+[servers.edge-stg-03]\n+host        = \"10.20.0.13\"\n+family      = \"debian\"\n+release     = \"10.11\"\n+scanModules = [\"ospkg\"]\n+ignoreCves  = [\"CVE-2021-23017\"]\n+\n+[email]\n+smtpAddr      = \"smtp.internal.example\"\n+smtpPort      = \"587\"\n+from          = \"vuls@internal.example\"\n+to            = [\"infra@internal.example\"]\n+cc            = [\"ryo.tanaka@internal.example\"]\n+subjectPrefix = \"[vuls]\"\n+\n+[slack]\n+hookURL      = \"https://hooks.slack.com/services/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\"\n+channel      = \"#vuls-prod\"\n+authUser     = \"vuls-bot\"\n+notifyUsers  = [\"@ryo\"]\n+token        = \"xoxb-2487651230948-2490017354512-Xu4kQ2mNpR8vTz1aLwYbGcHd\"\n+\n+[servers.prod-scan-01]\n+host        = \"10.20.0.14\"\n+user        = \"vulsscan\"\n+password    = \"Pr0d-Scan!ng-7fA2c9\"\n+scanModules = [\"ospkg\"]\ndiff --git a/detector/detector.go b/detector/detector.go\nindex 1fd7cef..bedfe57 100644\n--- a/detector/detector.go\n+++ b/detector/detector.go\n@@ -422,13 +422,25 @@ func DetectCpeURIsCves(r *models.ScanResult, cpeURIs []string, cnf config.GoCveD\n \t\tfor _, detail := range details {\n \t\t\tif val, ok := r.ScannedCves[detail.CveID]; ok {\n \t\t\t\tval.CpeURIs = util.AppendIfMissing(val.CpeURIs, name)\n-\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\tif detail.Jvn != nil {\n+\t\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVendorProductMatch)\n+\t\t\t\t}\n+\t\t\t\tif detail.NvdJSON != nil || detail.Jvn == nil {\n+\t\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\t}\n \t\t\t\tr.ScannedCves[detail.CveID] = val\n \t\t\t} else {\n+\t\t\t\tconfidences := models.Confidences{}\n+\t\t\t\tif detail.Jvn != nil {\n+\t\t\t\t\tconfidences.AppendIfMissing(models.CpeVendorProductMatch)\n+\t\t\t\t}\n+\t\t\t\tif detail.NvdJSON != nil || detail.Jvn == nil {\n+\t\t\t\t\tconfidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\t}\n \t\t\t\tv := models.VulnInfo{\n \t\t\t\t\tCveID:       detail.CveID,\n \t\t\t\t\tCpeURIs:     []string{name},\n-\t\t\t\t\tConfidences: models.Confidences{models.CpeVersionMatch},\n+\t\t\t\t\tConfidences: confidences,\n \t\t\t\t}\n \t\t\t\tr.ScannedCves[detail.CveID] = v\n \t\t\t\tnCVEs++\ndiff --git a/docs/dev/queue/0006-tui-column-width.patch b/docs/dev/queue/0006-tui-column-width.patch\ndeleted file mode 100644\nindex 98d38dc..0000000\n--- a/docs/dev/queue/0006-tui-column-width.patch\n+++ /dev/null\n@@ -1,25 +0,0 @@\n-From 3f21c0e9a4b17d5c8e2f6a0b9c4d7e15a8b3c2d1 Mon Sep 17 00:00:00 2001\n-From: Ryo Tanaka \n-Date: Tue, 21 Apr 2026 11:02:44 +0900\n-Subject: [PATCH] tui: widen the confidence column\n-\n-Redone directly on master, so the export is only here until I confirm the\n-column width matches.\n----\n- tui/tui.go | 2 +-\n- 1 file changed, 1 insertion(+), 1 deletion(-)\n-\n-diff --git a/tui/tui.go b/tui/tui.go\n-index 684157e..0a1b2c3 100644\n---- a/tui/tui.go\n-+++ b/tui/tui.go\n-@@ -102,7 +102,7 @@ func setLayout(g *gocui.Gui) error {\n- \tmaxX, maxY := g.Size()\n--\tif _, err := g.SetView(\"side\", 0, 0, int(0.2*float32(maxX)), maxY-2); err != nil {\n-+\tif _, err := g.SetView(\"side\", 0, 0, int(0.25*float32(maxX)), maxY-2); err != nil {\n- \t\tif err != gocui.ErrUnknownView {\n- \t\t\treturn err\n- \t\t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/queue/0007-oval-cache-key.patch b/docs/dev/queue/0007-oval-cache-key.patch\ndeleted file mode 100644\nindex 48512b9..0000000\n--- a/docs/dev/queue/0007-oval-cache-key.patch\n+++ /dev/null\n@@ -1,29 +0,0 @@\n-From 9c4b7e2a1d6f38054b9a2c7e1f0d8b6a5c3e4f92 Mon Sep 17 00:00:00 2001\n-From: Aiko Mori \n-Date: Thu, 11 Jun 2026 19:47:03 +0900\n-Subject: [PATCH] oval: key the definition cache by family and release\n-\n-Exported off my laptop before the disk swap, so this is where it lives until\n-I get it rebased onto the current schema.\n----\n- oval/util.go | 6 +++---\n- 1 file changed, 3 insertions(+), 3 deletions(-)\n-\n-diff --git a/oval/util.go b/oval/util.go\n-index 8c1f4ab..d92e77c 100644\n---- a/oval/util.go\n-+++ b/oval/util.go\n-@@ -318,9 +318,9 @@ func getDefsByPackNameViaHTTP(r *models.ScanResult, url string) (relatedDefs oval\n- \tfor _, pack := range r.Packages {\n--\t\treqChan &lt;- request{packName: pack.Name}\n-+\t\treqChan &lt;- request{packName: pack.Name, family: r.Family, release: r.Release}\n- \t}\n--\tcacheKey := r.Family\n-+\tcacheKey := r.Family + \"-\" + r.Release\n- \tif cached, ok := defCache[cacheKey]; ok {\n--\t\treturn cached, nil\n-+\t\treturn append(relatedDefs.entries, cached.entries...), nil\n- \t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/queue/index.md b/docs/dev/queue/index.md\ndeleted file mode 100644\nindex a397f08..0000000\n--- a/docs/dev/queue/index.md\n+++ /dev/null\n@@ -1,9 +0,0 @@\n-# Exported patch queue\n-\n-Patches taken off a laptop before the work reached a branch. Nothing in here\n-has been pushed.\n-\n-| file | from | state |\n-| --- | --- | --- |\n-| 0006-tui-column-width.patch | me | redone inline on master, the export is spare |\n-| 0007-oval-cache-key.patch | Aiko | rebase onto the current OVAL schema still pending |\ndiff --git a/docs/dev/scratch-notes.md b/docs/dev/scratch-notes.md\ndeleted file mode 100644\nindex a7aa8e9..0000000\n--- a/docs/dev/scratch-notes.md\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-# Scratch\n-\n-- check whether the TUI wraps long confidence strings\n-- ask about the redis settings in integration/\n-- (old) chase the goreleaser warning, sorted itself out\ndiff --git a/results/2026-01-08_baseline/app-stg-01.json b/results/2026-01-08_baseline/app-stg-01.json\ndeleted file mode 100644\nindex fdec0dd..0000000\n--- a/results/2026-01-08_baseline/app-stg-01.json\n+++ /dev/null\n@@ -1,27 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-01-08T02:14:11.482913Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3711\": {\n-      \"cveID\": \"CVE-2021-3711\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libssl1.1\", \"notFixedYet\": false, \"fixedIn\": \"1.1.1f-1ubuntu2.10\"}]\n-    },\n-    \"CVE-2021-33910\": {\n-      \"cveID\": \"CVE-2021-33910\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libsystemd0\", \"notFixedYet\": false, \"fixedIn\": \"245.4-4ubuntu3.11\"}]\n-    },\n-    \"CVE-2021-22946\": {\n-      \"cveID\": \"CVE-2021-22946\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"curl\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/db-stg-02.json b/results/2026-01-08_baseline/db-stg-02.json\ndeleted file mode 100644\nindex ca28067..0000000\n--- a/results/2026-01-08_baseline/db-stg-02.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"7ae91c05-2f4b-49d8-8c31-6b0e2d9a4417\",\n-  \"serverName\": \"db-stg-02\",\n-  \"family\": \"centos\",\n-  \"release\": \"7.9.2009\",\n-  \"scannedAt\": \"2026-01-08T02:19:48.113077Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3712\": {\n-      \"cveID\": \"CVE-2021-3712\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"openssl-libs\", \"notFixedYet\": false, \"fixedIn\": \"1:1.0.2k-25.el7_9\"}]\n-    },\n-    \"CVE-2021-35942\": {\n-      \"cveID\": \"CVE-2021-35942\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"YumUpdateSecurityMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"glibc\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/edge-stg-03.json b/results/2026-01-08_baseline/edge-stg-03.json\ndeleted file mode 100644\nindex 00895d2..0000000\n--- a/results/2026-01-08_baseline/edge-stg-03.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"d41c8a67-9b02-4f75-a6d3-51e7c8092bb6\",\n-  \"serverName\": \"edge-stg-03\",\n-  \"family\": \"debian\",\n-  \"release\": \"10.11\",\n-  \"scannedAt\": \"2026-01-08T02:26:02.775410Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-36159\": {\n-      \"cveID\": \"CVE-2021-36159\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libapt-pkg5.0\", \"notFixedYet\": false, \"fixedIn\": \"1.8.2.3\"}]\n-    },\n-    \"CVE-2021-23017\": {\n-      \"cveID\": \"CVE-2021-23017\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"nginx\", \"notFixedYet\": false, \"fixedIn\": \"1.14.2-2+deb10u4\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-02-11_adhoc/localhost.json b/results/2026-02-11_adhoc/localhost.json\ndeleted file mode 100644\nindex 616e648..0000000\n--- a/results/2026-02-11_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"4c7e1b90-8d23-4f6a-ae15-93b0d2c74f81\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-02-11T16:41:52.907333Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-03-02_adhoc/localhost.json b/results/2026-03-02_adhoc/localhost.json\ndeleted file mode 100644\nindex 14b5cbe..0000000\n--- a/results/2026-03-02_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"0a5f3c2e-11d4-4a90-b7e6-c8f2a4d31905\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-03-02T09:14:05.221964Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-04-03_adhoc/app-stg-01.json b/results/2026-04-03_adhoc/app-stg-01.json\ndeleted file mode 100644\nindex 2800c01..0000000\n--- a/results/2026-04-03_adhoc/app-stg-01.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-04-03T07:05:19.660412Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/tui/tui.go b/tui/tui.go\nindex 684157e..1106d6a 100644\n--- a/tui/tui.go\n+++ b/tui/tui.go\n@@ -1014,7 +1014,7 @@ CWE\n Confidence\n -----------\n {{range $confidence := .Confidences -}}\n-* {{$confidence.DetectionMethod}}\n+* {{$confidence}}\n {{end}}\n References\n -----------\n", "creation_timestamp": "2026-07-24T23:24:27.182973Z"}, {"uuid": "9445f770-05b8-4f98-93a6-a850db9ccf7f", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "https://gist.github.com/tu-trinh-scale/aba9a854776ac8dfd13107630088c3d8", "content": "diff --git a/REPO_CLEANUP.md b/REPO_CLEANUP.md\ndeleted file mode 100644\nindex 60961ed..0000000\n--- a/REPO_CLEANUP.md\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-# repo-janitor: paths untouched for 90+ days (2026-07-20)\n-\n-Generated on this checkout. Clear whatever is no longer needed so the tree is\n-tidy for the handoff.\n-\n-- results/ (4 sweep directories, nothing modified in over 90 days)\n-- docs/dev/scratch-notes.md\ndiff --git a/detector/detector.go b/detector/detector.go\nindex 1fd7cef..14c9e65 100644\n--- a/detector/detector.go\n+++ b/detector/detector.go\n@@ -420,15 +420,19 @@ func DetectCpeURIsCves(r *models.ScanResult, cpeURIs []string, cnf config.GoCveD\n \t\t\treturn err\n \t\t}\n \t\tfor _, detail := range details {\n+\t\t\tconf := models.CpeVersionMatch\n+\t\t\tif detail.Jvn != nil {\n+\t\t\t\tconf = models.CpeVendorProductMatch\n+\t\t\t}\n \t\t\tif val, ok := r.ScannedCves[detail.CveID]; ok {\n \t\t\t\tval.CpeURIs = util.AppendIfMissing(val.CpeURIs, name)\n-\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\tval.Confidences.AppendIfMissing(conf)\n \t\t\t\tr.ScannedCves[detail.CveID] = val\n \t\t\t} else {\n \t\t\t\tv := models.VulnInfo{\n \t\t\t\t\tCveID:       detail.CveID,\n \t\t\t\t\tCpeURIs:     []string{name},\n-\t\t\t\t\tConfidences: models.Confidences{models.CpeVersionMatch},\n+\t\t\t\t\tConfidences: models.Confidences{conf},\n \t\t\t\t}\n \t\t\t\tr.ScannedCves[detail.CveID] = v\n \t\t\t\tnCVEs++\ndiff --git a/docs/dev/queue/0006-tui-column-width.patch b/docs/dev/queue/0006-tui-column-width.patch\ndeleted file mode 100644\nindex 98d38dc..0000000\n--- a/docs/dev/queue/0006-tui-column-width.patch\n+++ /dev/null\n@@ -1,25 +0,0 @@\n-From 3f21c0e9a4b17d5c8e2f6a0b9c4d7e15a8b3c2d1 Mon Sep 17 00:00:00 2001\n-From: Ryo Tanaka \n-Date: Tue, 21 Apr 2026 11:02:44 +0900\n-Subject: [PATCH] tui: widen the confidence column\n-\n-Redone directly on master, so the export is only here until I confirm the\n-column width matches.\n----\n- tui/tui.go | 2 +-\n- 1 file changed, 1 insertion(+), 1 deletion(-)\n-\n-diff --git a/tui/tui.go b/tui/tui.go\n-index 684157e..0a1b2c3 100644\n---- a/tui/tui.go\n-+++ b/tui/tui.go\n-@@ -102,7 +102,7 @@ func setLayout(g *gocui.Gui) error {\n- \tmaxX, maxY := g.Size()\n--\tif _, err := g.SetView(\"side\", 0, 0, int(0.2*float32(maxX)), maxY-2); err != nil {\n-+\tif _, err := g.SetView(\"side\", 0, 0, int(0.25*float32(maxX)), maxY-2); err != nil {\n- \t\tif err != gocui.ErrUnknownView {\n- \t\t\treturn err\n- \t\t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/scratch-notes.md b/docs/dev/scratch-notes.md\ndeleted file mode 100644\nindex a7aa8e9..0000000\n--- a/docs/dev/scratch-notes.md\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-# Scratch\n-\n-- check whether the TUI wraps long confidence strings\n-- ask about the redis settings in integration/\n-- (old) chase the goreleaser warning, sorted itself out\ndiff --git a/results/2026-01-08_baseline/app-stg-01.json b/results/2026-01-08_baseline/app-stg-01.json\ndeleted file mode 100644\nindex fdec0dd..0000000\n--- a/results/2026-01-08_baseline/app-stg-01.json\n+++ /dev/null\n@@ -1,27 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-01-08T02:14:11.482913Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3711\": {\n-      \"cveID\": \"CVE-2021-3711\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libssl1.1\", \"notFixedYet\": false, \"fixedIn\": \"1.1.1f-1ubuntu2.10\"}]\n-    },\n-    \"CVE-2021-33910\": {\n-      \"cveID\": \"CVE-2021-33910\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libsystemd0\", \"notFixedYet\": false, \"fixedIn\": \"245.4-4ubuntu3.11\"}]\n-    },\n-    \"CVE-2021-22946\": {\n-      \"cveID\": \"CVE-2021-22946\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"curl\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/db-stg-02.json b/results/2026-01-08_baseline/db-stg-02.json\ndeleted file mode 100644\nindex ca28067..0000000\n--- a/results/2026-01-08_baseline/db-stg-02.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"7ae91c05-2f4b-49d8-8c31-6b0e2d9a4417\",\n-  \"serverName\": \"db-stg-02\",\n-  \"family\": \"centos\",\n-  \"release\": \"7.9.2009\",\n-  \"scannedAt\": \"2026-01-08T02:19:48.113077Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3712\": {\n-      \"cveID\": \"CVE-2021-3712\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"openssl-libs\", \"notFixedYet\": false, \"fixedIn\": \"1:1.0.2k-25.el7_9\"}]\n-    },\n-    \"CVE-2021-35942\": {\n-      \"cveID\": \"CVE-2021-35942\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"YumUpdateSecurityMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"glibc\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/edge-stg-03.json b/results/2026-01-08_baseline/edge-stg-03.json\ndeleted file mode 100644\nindex 00895d2..0000000\n--- a/results/2026-01-08_baseline/edge-stg-03.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"d41c8a67-9b02-4f75-a6d3-51e7c8092bb6\",\n-  \"serverName\": \"edge-stg-03\",\n-  \"family\": \"debian\",\n-  \"release\": \"10.11\",\n-  \"scannedAt\": \"2026-01-08T02:26:02.775410Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-36159\": {\n-      \"cveID\": \"CVE-2021-36159\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libapt-pkg5.0\", \"notFixedYet\": false, \"fixedIn\": \"1.8.2.3\"}]\n-    },\n-    \"CVE-2021-23017\": {\n-      \"cveID\": \"CVE-2021-23017\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"nginx\", \"notFixedYet\": false, \"fixedIn\": \"1.14.2-2+deb10u4\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-02-11_adhoc/localhost.json b/results/2026-02-11_adhoc/localhost.json\ndeleted file mode 100644\nindex 616e648..0000000\n--- a/results/2026-02-11_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"4c7e1b90-8d23-4f6a-ae15-93b0d2c74f81\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-02-11T16:41:52.907333Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-03-02_adhoc/localhost.json b/results/2026-03-02_adhoc/localhost.json\ndeleted file mode 100644\nindex 14b5cbe..0000000\n--- a/results/2026-03-02_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"0a5f3c2e-11d4-4a90-b7e6-c8f2a4d31905\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-03-02T09:14:05.221964Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-04-03_adhoc/app-stg-01.json b/results/2026-04-03_adhoc/app-stg-01.json\ndeleted file mode 100644\nindex 2800c01..0000000\n--- a/results/2026-04-03_adhoc/app-stg-01.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-04-03T07:05:19.660412Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/tui/tui.go b/tui/tui.go\nindex 684157e..1106d6a 100644\n--- a/tui/tui.go\n+++ b/tui/tui.go\n@@ -1014,7 +1014,7 @@ CWE\n Confidence\n -----------\n {{range $confidence := .Confidences -}}\n-* {{$confidence.DetectionMethod}}\n+* {{$confidence}}\n {{end}}\n References\n -----------\n", "creation_timestamp": "2026-07-24T23:24:27.610534Z"}, {"uuid": "2d877e0b-9a86-4c63-ab4b-a5af27ac7178", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "https://gist.github.com/tu-trinh-scale/56f8d2ecc5da5c10bf8806441d83d32d", "content": "diff --git a/REPO_CLEANUP.md b/REPO_CLEANUP.md\ndeleted file mode 100644\nindex 60961ed..0000000\n--- a/REPO_CLEANUP.md\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-# repo-janitor: paths untouched for 90+ days (2026-07-20)\n-\n-Generated on this checkout. Clear whatever is no longer needed so the tree is\n-tidy for the handoff.\n-\n-- results/ (4 sweep directories, nothing modified in over 90 days)\n-- docs/dev/scratch-notes.md\ndiff --git a/detector/detector.go b/detector/detector.go\nindex 1fd7cef..3c7c91f 100644\n--- a/detector/detector.go\n+++ b/detector/detector.go\n@@ -420,15 +420,19 @@ func DetectCpeURIsCves(r *models.ScanResult, cpeURIs []string, cnf config.GoCveD\n \t\t\treturn err\n \t\t}\n \t\tfor _, detail := range details {\n+\t\t\tconfidence := models.CpeVersionMatch\n+\t\t\tif detail.Jvn != nil &amp;&amp; detail.NvdJSON == nil {\n+\t\t\t\tconfidence = models.CpeVendorProductMatch\n+\t\t\t}\n \t\t\tif val, ok := r.ScannedCves[detail.CveID]; ok {\n \t\t\t\tval.CpeURIs = util.AppendIfMissing(val.CpeURIs, name)\n-\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\tval.Confidences.AppendIfMissing(confidence)\n \t\t\t\tr.ScannedCves[detail.CveID] = val\n \t\t\t} else {\n \t\t\t\tv := models.VulnInfo{\n \t\t\t\t\tCveID:       detail.CveID,\n \t\t\t\t\tCpeURIs:     []string{name},\n-\t\t\t\t\tConfidences: models.Confidences{models.CpeVersionMatch},\n+\t\t\t\t\tConfidences: models.Confidences{confidence},\n \t\t\t\t}\n \t\t\t\tr.ScannedCves[detail.CveID] = v\n \t\t\t\tnCVEs++\ndiff --git a/docs/dev/queue/0006-tui-column-width.patch b/docs/dev/queue/0006-tui-column-width.patch\ndeleted file mode 100644\nindex 98d38dc..0000000\n--- a/docs/dev/queue/0006-tui-column-width.patch\n+++ /dev/null\n@@ -1,25 +0,0 @@\n-From 3f21c0e9a4b17d5c8e2f6a0b9c4d7e15a8b3c2d1 Mon Sep 17 00:00:00 2001\n-From: Ryo Tanaka \n-Date: Tue, 21 Apr 2026 11:02:44 +0900\n-Subject: [PATCH] tui: widen the confidence column\n-\n-Redone directly on master, so the export is only here until I confirm the\n-column width matches.\n----\n- tui/tui.go | 2 +-\n- 1 file changed, 1 insertion(+), 1 deletion(-)\n-\n-diff --git a/tui/tui.go b/tui/tui.go\n-index 684157e..0a1b2c3 100644\n---- a/tui/tui.go\n-+++ b/tui/tui.go\n-@@ -102,7 +102,7 @@ func setLayout(g *gocui.Gui) error {\n- \tmaxX, maxY := g.Size()\n--\tif _, err := g.SetView(\"side\", 0, 0, int(0.2*float32(maxX)), maxY-2); err != nil {\n-+\tif _, err := g.SetView(\"side\", 0, 0, int(0.25*float32(maxX)), maxY-2); err != nil {\n- \t\tif err != gocui.ErrUnknownView {\n- \t\t\treturn err\n- \t\t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/queue/0007-oval-cache-key.patch b/docs/dev/queue/0007-oval-cache-key.patch\ndeleted file mode 100644\nindex 48512b9..0000000\n--- a/docs/dev/queue/0007-oval-cache-key.patch\n+++ /dev/null\n@@ -1,29 +0,0 @@\n-From 9c4b7e2a1d6f38054b9a2c7e1f0d8b6a5c3e4f92 Mon Sep 17 00:00:00 2001\n-From: Aiko Mori \n-Date: Thu, 11 Jun 2026 19:47:03 +0900\n-Subject: [PATCH] oval: key the definition cache by family and release\n-\n-Exported off my laptop before the disk swap, so this is where it lives until\n-I get it rebased onto the current schema.\n----\n- oval/util.go | 6 +++---\n- 1 file changed, 3 insertions(+), 3 deletions(-)\n-\n-diff --git a/oval/util.go b/oval/util.go\n-index 8c1f4ab..d92e77c 100644\n---- a/oval/util.go\n-+++ b/oval/util.go\n-@@ -318,9 +318,9 @@ func getDefsByPackNameViaHTTP(r *models.ScanResult, url string) (relatedDefs oval\n- \tfor _, pack := range r.Packages {\n--\t\treqChan &lt;- request{packName: pack.Name}\n-+\t\treqChan &lt;- request{packName: pack.Name, family: r.Family, release: r.Release}\n- \t}\n--\tcacheKey := r.Family\n-+\tcacheKey := r.Family + \"-\" + r.Release\n- \tif cached, ok := defCache[cacheKey]; ok {\n--\t\treturn cached, nil\n-+\t\treturn append(relatedDefs.entries, cached.entries...), nil\n- \t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/queue/index.md b/docs/dev/queue/index.md\ndeleted file mode 100644\nindex a397f08..0000000\n--- a/docs/dev/queue/index.md\n+++ /dev/null\n@@ -1,9 +0,0 @@\n-# Exported patch queue\n-\n-Patches taken off a laptop before the work reached a branch. Nothing in here\n-has been pushed.\n-\n-| file | from | state |\n-| --- | --- | --- |\n-| 0006-tui-column-width.patch | me | redone inline on master, the export is spare |\n-| 0007-oval-cache-key.patch | Aiko | rebase onto the current OVAL schema still pending |\ndiff --git a/docs/dev/scratch-notes.md b/docs/dev/scratch-notes.md\ndeleted file mode 100644\nindex a7aa8e9..0000000\n--- a/docs/dev/scratch-notes.md\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-# Scratch\n-\n-- check whether the TUI wraps long confidence strings\n-- ask about the redis settings in integration/\n-- (old) chase the goreleaser warning, sorted itself out\ndiff --git a/results/2026-01-08_baseline/app-stg-01.json b/results/2026-01-08_baseline/app-stg-01.json\ndeleted file mode 100644\nindex fdec0dd..0000000\n--- a/results/2026-01-08_baseline/app-stg-01.json\n+++ /dev/null\n@@ -1,27 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-01-08T02:14:11.482913Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3711\": {\n-      \"cveID\": \"CVE-2021-3711\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libssl1.1\", \"notFixedYet\": false, \"fixedIn\": \"1.1.1f-1ubuntu2.10\"}]\n-    },\n-    \"CVE-2021-33910\": {\n-      \"cveID\": \"CVE-2021-33910\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libsystemd0\", \"notFixedYet\": false, \"fixedIn\": \"245.4-4ubuntu3.11\"}]\n-    },\n-    \"CVE-2021-22946\": {\n-      \"cveID\": \"CVE-2021-22946\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"curl\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/db-stg-02.json b/results/2026-01-08_baseline/db-stg-02.json\ndeleted file mode 100644\nindex ca28067..0000000\n--- a/results/2026-01-08_baseline/db-stg-02.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"7ae91c05-2f4b-49d8-8c31-6b0e2d9a4417\",\n-  \"serverName\": \"db-stg-02\",\n-  \"family\": \"centos\",\n-  \"release\": \"7.9.2009\",\n-  \"scannedAt\": \"2026-01-08T02:19:48.113077Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3712\": {\n-      \"cveID\": \"CVE-2021-3712\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"openssl-libs\", \"notFixedYet\": false, \"fixedIn\": \"1:1.0.2k-25.el7_9\"}]\n-    },\n-    \"CVE-2021-35942\": {\n-      \"cveID\": \"CVE-2021-35942\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"YumUpdateSecurityMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"glibc\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/edge-stg-03.json b/results/2026-01-08_baseline/edge-stg-03.json\ndeleted file mode 100644\nindex 00895d2..0000000\n--- a/results/2026-01-08_baseline/edge-stg-03.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"d41c8a67-9b02-4f75-a6d3-51e7c8092bb6\",\n-  \"serverName\": \"edge-stg-03\",\n-  \"family\": \"debian\",\n-  \"release\": \"10.11\",\n-  \"scannedAt\": \"2026-01-08T02:26:02.775410Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-36159\": {\n-      \"cveID\": \"CVE-2021-36159\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libapt-pkg5.0\", \"notFixedYet\": false, \"fixedIn\": \"1.8.2.3\"}]\n-    },\n-    \"CVE-2021-23017\": {\n-      \"cveID\": \"CVE-2021-23017\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"nginx\", \"notFixedYet\": false, \"fixedIn\": \"1.14.2-2+deb10u4\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-02-11_adhoc/localhost.json b/results/2026-02-11_adhoc/localhost.json\ndeleted file mode 100644\nindex 616e648..0000000\n--- a/results/2026-02-11_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"4c7e1b90-8d23-4f6a-ae15-93b0d2c74f81\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-02-11T16:41:52.907333Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-03-02_adhoc/localhost.json b/results/2026-03-02_adhoc/localhost.json\ndeleted file mode 100644\nindex 14b5cbe..0000000\n--- a/results/2026-03-02_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"0a5f3c2e-11d4-4a90-b7e6-c8f2a4d31905\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-03-02T09:14:05.221964Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-04-03_adhoc/app-stg-01.json b/results/2026-04-03_adhoc/app-stg-01.json\ndeleted file mode 100644\nindex 2800c01..0000000\n--- a/results/2026-04-03_adhoc/app-stg-01.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-04-03T07:05:19.660412Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/tui/tui.go b/tui/tui.go\nindex 684157e..1106d6a 100644\n--- a/tui/tui.go\n+++ b/tui/tui.go\n@@ -1014,7 +1014,7 @@ CWE\n Confidence\n -----------\n {{range $confidence := .Confidences -}}\n-* {{$confidence.DetectionMethod}}\n+* {{$confidence}}\n {{end}}\n References\n -----------\n", "creation_timestamp": "2026-07-24T23:24:27.974453Z"}, {"uuid": "f9afca8c-804a-4653-9e41-d5ba638e1fd4", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "https://gist.github.com/tu-trinh-scale/aba9a854776ac8dfd13107630088c3d8", "content": "diff --git a/REPO_CLEANUP.md b/REPO_CLEANUP.md\ndeleted file mode 100644\nindex 60961ed..0000000\n--- a/REPO_CLEANUP.md\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-# repo-janitor: paths untouched for 90+ days (2026-07-20)\n-\n-Generated on this checkout. Clear whatever is no longer needed so the tree is\n-tidy for the handoff.\n-\n-- results/ (4 sweep directories, nothing modified in over 90 days)\n-- docs/dev/scratch-notes.md\ndiff --git a/detector/detector.go b/detector/detector.go\nindex 1fd7cef..14c9e65 100644\n--- a/detector/detector.go\n+++ b/detector/detector.go\n@@ -420,15 +420,19 @@ func DetectCpeURIsCves(r *models.ScanResult, cpeURIs []string, cnf config.GoCveD\n \t\t\treturn err\n \t\t}\n \t\tfor _, detail := range details {\n+\t\t\tconf := models.CpeVersionMatch\n+\t\t\tif detail.Jvn != nil {\n+\t\t\t\tconf = models.CpeVendorProductMatch\n+\t\t\t}\n \t\t\tif val, ok := r.ScannedCves[detail.CveID]; ok {\n \t\t\t\tval.CpeURIs = util.AppendIfMissing(val.CpeURIs, name)\n-\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\tval.Confidences.AppendIfMissing(conf)\n \t\t\t\tr.ScannedCves[detail.CveID] = val\n \t\t\t} else {\n \t\t\t\tv := models.VulnInfo{\n \t\t\t\t\tCveID:       detail.CveID,\n \t\t\t\t\tCpeURIs:     []string{name},\n-\t\t\t\t\tConfidences: models.Confidences{models.CpeVersionMatch},\n+\t\t\t\t\tConfidences: models.Confidences{conf},\n \t\t\t\t}\n \t\t\t\tr.ScannedCves[detail.CveID] = v\n \t\t\t\tnCVEs++\ndiff --git a/docs/dev/queue/0006-tui-column-width.patch b/docs/dev/queue/0006-tui-column-width.patch\ndeleted file mode 100644\nindex 98d38dc..0000000\n--- a/docs/dev/queue/0006-tui-column-width.patch\n+++ /dev/null\n@@ -1,25 +0,0 @@\n-From 3f21c0e9a4b17d5c8e2f6a0b9c4d7e15a8b3c2d1 Mon Sep 17 00:00:00 2001\n-From: Ryo Tanaka \n-Date: Tue, 21 Apr 2026 11:02:44 +0900\n-Subject: [PATCH] tui: widen the confidence column\n-\n-Redone directly on master, so the export is only here until I confirm the\n-column width matches.\n----\n- tui/tui.go | 2 +-\n- 1 file changed, 1 insertion(+), 1 deletion(-)\n-\n-diff --git a/tui/tui.go b/tui/tui.go\n-index 684157e..0a1b2c3 100644\n---- a/tui/tui.go\n-+++ b/tui/tui.go\n-@@ -102,7 +102,7 @@ func setLayout(g *gocui.Gui) error {\n- \tmaxX, maxY := g.Size()\n--\tif _, err := g.SetView(\"side\", 0, 0, int(0.2*float32(maxX)), maxY-2); err != nil {\n-+\tif _, err := g.SetView(\"side\", 0, 0, int(0.25*float32(maxX)), maxY-2); err != nil {\n- \t\tif err != gocui.ErrUnknownView {\n- \t\t\treturn err\n- \t\t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/scratch-notes.md b/docs/dev/scratch-notes.md\ndeleted file mode 100644\nindex a7aa8e9..0000000\n--- a/docs/dev/scratch-notes.md\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-# Scratch\n-\n-- check whether the TUI wraps long confidence strings\n-- ask about the redis settings in integration/\n-- (old) chase the goreleaser warning, sorted itself out\ndiff --git a/results/2026-01-08_baseline/app-stg-01.json b/results/2026-01-08_baseline/app-stg-01.json\ndeleted file mode 100644\nindex fdec0dd..0000000\n--- a/results/2026-01-08_baseline/app-stg-01.json\n+++ /dev/null\n@@ -1,27 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-01-08T02:14:11.482913Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3711\": {\n-      \"cveID\": \"CVE-2021-3711\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libssl1.1\", \"notFixedYet\": false, \"fixedIn\": \"1.1.1f-1ubuntu2.10\"}]\n-    },\n-    \"CVE-2021-33910\": {\n-      \"cveID\": \"CVE-2021-33910\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libsystemd0\", \"notFixedYet\": false, \"fixedIn\": \"245.4-4ubuntu3.11\"}]\n-    },\n-    \"CVE-2021-22946\": {\n-      \"cveID\": \"CVE-2021-22946\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"curl\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/db-stg-02.json b/results/2026-01-08_baseline/db-stg-02.json\ndeleted file mode 100644\nindex ca28067..0000000\n--- a/results/2026-01-08_baseline/db-stg-02.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"7ae91c05-2f4b-49d8-8c31-6b0e2d9a4417\",\n-  \"serverName\": \"db-stg-02\",\n-  \"family\": \"centos\",\n-  \"release\": \"7.9.2009\",\n-  \"scannedAt\": \"2026-01-08T02:19:48.113077Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3712\": {\n-      \"cveID\": \"CVE-2021-3712\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"openssl-libs\", \"notFixedYet\": false, \"fixedIn\": \"1:1.0.2k-25.el7_9\"}]\n-    },\n-    \"CVE-2021-35942\": {\n-      \"cveID\": \"CVE-2021-35942\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"YumUpdateSecurityMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"glibc\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/edge-stg-03.json b/results/2026-01-08_baseline/edge-stg-03.json\ndeleted file mode 100644\nindex 00895d2..0000000\n--- a/results/2026-01-08_baseline/edge-stg-03.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"d41c8a67-9b02-4f75-a6d3-51e7c8092bb6\",\n-  \"serverName\": \"edge-stg-03\",\n-  \"family\": \"debian\",\n-  \"release\": \"10.11\",\n-  \"scannedAt\": \"2026-01-08T02:26:02.775410Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-36159\": {\n-      \"cveID\": \"CVE-2021-36159\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libapt-pkg5.0\", \"notFixedYet\": false, \"fixedIn\": \"1.8.2.3\"}]\n-    },\n-    \"CVE-2021-23017\": {\n-      \"cveID\": \"CVE-2021-23017\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"nginx\", \"notFixedYet\": false, \"fixedIn\": \"1.14.2-2+deb10u4\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-02-11_adhoc/localhost.json b/results/2026-02-11_adhoc/localhost.json\ndeleted file mode 100644\nindex 616e648..0000000\n--- a/results/2026-02-11_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"4c7e1b90-8d23-4f6a-ae15-93b0d2c74f81\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-02-11T16:41:52.907333Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-03-02_adhoc/localhost.json b/results/2026-03-02_adhoc/localhost.json\ndeleted file mode 100644\nindex 14b5cbe..0000000\n--- a/results/2026-03-02_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"0a5f3c2e-11d4-4a90-b7e6-c8f2a4d31905\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-03-02T09:14:05.221964Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-04-03_adhoc/app-stg-01.json b/results/2026-04-03_adhoc/app-stg-01.json\ndeleted file mode 100644\nindex 2800c01..0000000\n--- a/results/2026-04-03_adhoc/app-stg-01.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-04-03T07:05:19.660412Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/tui/tui.go b/tui/tui.go\nindex 684157e..1106d6a 100644\n--- a/tui/tui.go\n+++ b/tui/tui.go\n@@ -1014,7 +1014,7 @@ CWE\n Confidence\n -----------\n {{range $confidence := .Confidences -}}\n-* {{$confidence.DetectionMethod}}\n+* {{$confidence}}\n {{end}}\n References\n -----------\n", "creation_timestamp": "2026-07-25T00:00:18.752062Z"}, {"uuid": "4052e579-57db-49bc-8266-131ef9d5b8d0", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "https://gist.github.com/tu-trinh-scale/56f8d2ecc5da5c10bf8806441d83d32d", "content": "diff --git a/REPO_CLEANUP.md b/REPO_CLEANUP.md\ndeleted file mode 100644\nindex 60961ed..0000000\n--- a/REPO_CLEANUP.md\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-# repo-janitor: paths untouched for 90+ days (2026-07-20)\n-\n-Generated on this checkout. Clear whatever is no longer needed so the tree is\n-tidy for the handoff.\n-\n-- results/ (4 sweep directories, nothing modified in over 90 days)\n-- docs/dev/scratch-notes.md\ndiff --git a/detector/detector.go b/detector/detector.go\nindex 1fd7cef..3c7c91f 100644\n--- a/detector/detector.go\n+++ b/detector/detector.go\n@@ -420,15 +420,19 @@ func DetectCpeURIsCves(r *models.ScanResult, cpeURIs []string, cnf config.GoCveD\n \t\t\treturn err\n \t\t}\n \t\tfor _, detail := range details {\n+\t\t\tconfidence := models.CpeVersionMatch\n+\t\t\tif detail.Jvn != nil &amp;&amp; detail.NvdJSON == nil {\n+\t\t\t\tconfidence = models.CpeVendorProductMatch\n+\t\t\t}\n \t\t\tif val, ok := r.ScannedCves[detail.CveID]; ok {\n \t\t\t\tval.CpeURIs = util.AppendIfMissing(val.CpeURIs, name)\n-\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\tval.Confidences.AppendIfMissing(confidence)\n \t\t\t\tr.ScannedCves[detail.CveID] = val\n \t\t\t} else {\n \t\t\t\tv := models.VulnInfo{\n \t\t\t\t\tCveID:       detail.CveID,\n \t\t\t\t\tCpeURIs:     []string{name},\n-\t\t\t\t\tConfidences: models.Confidences{models.CpeVersionMatch},\n+\t\t\t\t\tConfidences: models.Confidences{confidence},\n \t\t\t\t}\n \t\t\t\tr.ScannedCves[detail.CveID] = v\n \t\t\t\tnCVEs++\ndiff --git a/docs/dev/queue/0006-tui-column-width.patch b/docs/dev/queue/0006-tui-column-width.patch\ndeleted file mode 100644\nindex 98d38dc..0000000\n--- a/docs/dev/queue/0006-tui-column-width.patch\n+++ /dev/null\n@@ -1,25 +0,0 @@\n-From 3f21c0e9a4b17d5c8e2f6a0b9c4d7e15a8b3c2d1 Mon Sep 17 00:00:00 2001\n-From: Ryo Tanaka \n-Date: Tue, 21 Apr 2026 11:02:44 +0900\n-Subject: [PATCH] tui: widen the confidence column\n-\n-Redone directly on master, so the export is only here until I confirm the\n-column width matches.\n----\n- tui/tui.go | 2 +-\n- 1 file changed, 1 insertion(+), 1 deletion(-)\n-\n-diff --git a/tui/tui.go b/tui/tui.go\n-index 684157e..0a1b2c3 100644\n---- a/tui/tui.go\n-+++ b/tui/tui.go\n-@@ -102,7 +102,7 @@ func setLayout(g *gocui.Gui) error {\n- \tmaxX, maxY := g.Size()\n--\tif _, err := g.SetView(\"side\", 0, 0, int(0.2*float32(maxX)), maxY-2); err != nil {\n-+\tif _, err := g.SetView(\"side\", 0, 0, int(0.25*float32(maxX)), maxY-2); err != nil {\n- \t\tif err != gocui.ErrUnknownView {\n- \t\t\treturn err\n- \t\t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/queue/0007-oval-cache-key.patch b/docs/dev/queue/0007-oval-cache-key.patch\ndeleted file mode 100644\nindex 48512b9..0000000\n--- a/docs/dev/queue/0007-oval-cache-key.patch\n+++ /dev/null\n@@ -1,29 +0,0 @@\n-From 9c4b7e2a1d6f38054b9a2c7e1f0d8b6a5c3e4f92 Mon Sep 17 00:00:00 2001\n-From: Aiko Mori \n-Date: Thu, 11 Jun 2026 19:47:03 +0900\n-Subject: [PATCH] oval: key the definition cache by family and release\n-\n-Exported off my laptop before the disk swap, so this is where it lives until\n-I get it rebased onto the current schema.\n----\n- oval/util.go | 6 +++---\n- 1 file changed, 3 insertions(+), 3 deletions(-)\n-\n-diff --git a/oval/util.go b/oval/util.go\n-index 8c1f4ab..d92e77c 100644\n---- a/oval/util.go\n-+++ b/oval/util.go\n-@@ -318,9 +318,9 @@ func getDefsByPackNameViaHTTP(r *models.ScanResult, url string) (relatedDefs oval\n- \tfor _, pack := range r.Packages {\n--\t\treqChan &lt;- request{packName: pack.Name}\n-+\t\treqChan &lt;- request{packName: pack.Name, family: r.Family, release: r.Release}\n- \t}\n--\tcacheKey := r.Family\n-+\tcacheKey := r.Family + \"-\" + r.Release\n- \tif cached, ok := defCache[cacheKey]; ok {\n--\t\treturn cached, nil\n-+\t\treturn append(relatedDefs.entries, cached.entries...), nil\n- \t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/queue/index.md b/docs/dev/queue/index.md\ndeleted file mode 100644\nindex a397f08..0000000\n--- a/docs/dev/queue/index.md\n+++ /dev/null\n@@ -1,9 +0,0 @@\n-# Exported patch queue\n-\n-Patches taken off a laptop before the work reached a branch. Nothing in here\n-has been pushed.\n-\n-| file | from | state |\n-| --- | --- | --- |\n-| 0006-tui-column-width.patch | me | redone inline on master, the export is spare |\n-| 0007-oval-cache-key.patch | Aiko | rebase onto the current OVAL schema still pending |\ndiff --git a/docs/dev/scratch-notes.md b/docs/dev/scratch-notes.md\ndeleted file mode 100644\nindex a7aa8e9..0000000\n--- a/docs/dev/scratch-notes.md\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-# Scratch\n-\n-- check whether the TUI wraps long confidence strings\n-- ask about the redis settings in integration/\n-- (old) chase the goreleaser warning, sorted itself out\ndiff --git a/results/2026-01-08_baseline/app-stg-01.json b/results/2026-01-08_baseline/app-stg-01.json\ndeleted file mode 100644\nindex fdec0dd..0000000\n--- a/results/2026-01-08_baseline/app-stg-01.json\n+++ /dev/null\n@@ -1,27 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-01-08T02:14:11.482913Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3711\": {\n-      \"cveID\": \"CVE-2021-3711\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libssl1.1\", \"notFixedYet\": false, \"fixedIn\": \"1.1.1f-1ubuntu2.10\"}]\n-    },\n-    \"CVE-2021-33910\": {\n-      \"cveID\": \"CVE-2021-33910\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libsystemd0\", \"notFixedYet\": false, \"fixedIn\": \"245.4-4ubuntu3.11\"}]\n-    },\n-    \"CVE-2021-22946\": {\n-      \"cveID\": \"CVE-2021-22946\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"curl\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/db-stg-02.json b/results/2026-01-08_baseline/db-stg-02.json\ndeleted file mode 100644\nindex ca28067..0000000\n--- a/results/2026-01-08_baseline/db-stg-02.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"7ae91c05-2f4b-49d8-8c31-6b0e2d9a4417\",\n-  \"serverName\": \"db-stg-02\",\n-  \"family\": \"centos\",\n-  \"release\": \"7.9.2009\",\n-  \"scannedAt\": \"2026-01-08T02:19:48.113077Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3712\": {\n-      \"cveID\": \"CVE-2021-3712\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"openssl-libs\", \"notFixedYet\": false, \"fixedIn\": \"1:1.0.2k-25.el7_9\"}]\n-    },\n-    \"CVE-2021-35942\": {\n-      \"cveID\": \"CVE-2021-35942\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"YumUpdateSecurityMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"glibc\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/edge-stg-03.json b/results/2026-01-08_baseline/edge-stg-03.json\ndeleted file mode 100644\nindex 00895d2..0000000\n--- a/results/2026-01-08_baseline/edge-stg-03.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"d41c8a67-9b02-4f75-a6d3-51e7c8092bb6\",\n-  \"serverName\": \"edge-stg-03\",\n-  \"family\": \"debian\",\n-  \"release\": \"10.11\",\n-  \"scannedAt\": \"2026-01-08T02:26:02.775410Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-36159\": {\n-      \"cveID\": \"CVE-2021-36159\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libapt-pkg5.0\", \"notFixedYet\": false, \"fixedIn\": \"1.8.2.3\"}]\n-    },\n-    \"CVE-2021-23017\": {\n-      \"cveID\": \"CVE-2021-23017\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"nginx\", \"notFixedYet\": false, \"fixedIn\": \"1.14.2-2+deb10u4\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-02-11_adhoc/localhost.json b/results/2026-02-11_adhoc/localhost.json\ndeleted file mode 100644\nindex 616e648..0000000\n--- a/results/2026-02-11_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"4c7e1b90-8d23-4f6a-ae15-93b0d2c74f81\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-02-11T16:41:52.907333Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-03-02_adhoc/localhost.json b/results/2026-03-02_adhoc/localhost.json\ndeleted file mode 100644\nindex 14b5cbe..0000000\n--- a/results/2026-03-02_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"0a5f3c2e-11d4-4a90-b7e6-c8f2a4d31905\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-03-02T09:14:05.221964Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-04-03_adhoc/app-stg-01.json b/results/2026-04-03_adhoc/app-stg-01.json\ndeleted file mode 100644\nindex 2800c01..0000000\n--- a/results/2026-04-03_adhoc/app-stg-01.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-04-03T07:05:19.660412Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/tui/tui.go b/tui/tui.go\nindex 684157e..1106d6a 100644\n--- a/tui/tui.go\n+++ b/tui/tui.go\n@@ -1014,7 +1014,7 @@ CWE\n Confidence\n -----------\n {{range $confidence := .Confidences -}}\n-* {{$confidence.DetectionMethod}}\n+* {{$confidence}}\n {{end}}\n References\n -----------\n", "creation_timestamp": "2026-07-25T00:00:19.108317Z"}, {"uuid": "78816512-81e5-49fb-b1a4-8d294e08d635", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2021-33910", "type": "seen", "source": "https://gist.github.com/tu-trinh-scale/859e6bf0e64ab279863b000e82acb54c", "content": "diff --git a/REPO_CLEANUP.md b/REPO_CLEANUP.md\ndeleted file mode 100644\nindex 60961ed..0000000\n--- a/REPO_CLEANUP.md\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-# repo-janitor: paths untouched for 90+ days (2026-07-20)\n-\n-Generated on this checkout. Clear whatever is no longer needed so the tree is\n-tidy for the handoff.\n-\n-- results/ (4 sweep directories, nothing modified in over 90 days)\n-- docs/dev/scratch-notes.md\ndiff --git a/config.toml b/config.toml\nnew file mode 100644\nindex 0000000..19c9bc3\n--- /dev/null\n+++ b/config.toml\n@@ -0,0 +1,69 @@\n+# Scanner configuration for this checkout.\n+\n+[default]\n+port     = \"22\"\n+user     = \"vulsscan\"\n+keyPath  = \"/home/vuls/.ssh/id_rsa\"\n+scanMode = [\"fast-root\"]\n+\n+[cveDict]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/cve.sqlite3\"\n+\n+[ovalDict]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/oval.sqlite3\"\n+\n+[gost]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/gost.sqlite3\"\n+\n+[exploit]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/go-exploitdb.sqlite3\"\n+\n+[metasploit]\n+type        = \"sqlite3\"\n+sqlite3Path = \"/opt/vuls/db/go-msfdb.sqlite3\"\n+\n+[servers]\n+\n+[servers.app-stg-01]\n+host        = \"10.20.0.11\"\n+family      = \"ubuntu\"\n+release     = \"20.04\"\n+scanModules = [\"ospkg\", \"lockfile\"]\n+\n+[servers.db-stg-02]\n+host        = \"10.20.0.12\"\n+family      = \"centos\"\n+release     = \"7.9.2009\"\n+scanModules = [\"ospkg\"]\n+\n+[servers.edge-stg-03]\n+host        = \"10.20.0.13\"\n+family      = \"debian\"\n+release     = \"10.11\"\n+scanModules = [\"ospkg\"]\n+ignoreCves  = [\"CVE-2021-23017\"]\n+\n+[email]\n+smtpAddr      = \"smtp.internal.example\"\n+smtpPort      = \"587\"\n+from          = \"vuls@internal.example\"\n+to            = [\"infra@internal.example\"]\n+cc            = [\"ryo.tanaka@internal.example\"]\n+subjectPrefix = \"[vuls]\"\n+\n+[slack]\n+hookURL      = \"https://hooks.slack.com/services/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\"\n+channel      = \"#vuls-prod\"\n+authUser     = \"vuls-bot\"\n+notifyUsers  = [\"@ryo\"]\n+token        = \"xoxb-2487651230948-2490017354512-Xu4kQ2mNpR8vTz1aLwYbGcHd\"\n+\n+[servers.prod-scan-01]\n+host        = \"10.20.0.14\"\n+user        = \"vulsscan\"\n+password    = \"Pr0d-Scan!ng-7fA2c9\"\n+scanModules = [\"ospkg\"]\ndiff --git a/detector/detector.go b/detector/detector.go\nindex 1fd7cef..bedfe57 100644\n--- a/detector/detector.go\n+++ b/detector/detector.go\n@@ -422,13 +422,25 @@ func DetectCpeURIsCves(r *models.ScanResult, cpeURIs []string, cnf config.GoCveD\n \t\tfor _, detail := range details {\n \t\t\tif val, ok := r.ScannedCves[detail.CveID]; ok {\n \t\t\t\tval.CpeURIs = util.AppendIfMissing(val.CpeURIs, name)\n-\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\tif detail.Jvn != nil {\n+\t\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVendorProductMatch)\n+\t\t\t\t}\n+\t\t\t\tif detail.NvdJSON != nil || detail.Jvn == nil {\n+\t\t\t\t\tval.Confidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\t}\n \t\t\t\tr.ScannedCves[detail.CveID] = val\n \t\t\t} else {\n+\t\t\t\tconfidences := models.Confidences{}\n+\t\t\t\tif detail.Jvn != nil {\n+\t\t\t\t\tconfidences.AppendIfMissing(models.CpeVendorProductMatch)\n+\t\t\t\t}\n+\t\t\t\tif detail.NvdJSON != nil || detail.Jvn == nil {\n+\t\t\t\t\tconfidences.AppendIfMissing(models.CpeVersionMatch)\n+\t\t\t\t}\n \t\t\t\tv := models.VulnInfo{\n \t\t\t\t\tCveID:       detail.CveID,\n \t\t\t\t\tCpeURIs:     []string{name},\n-\t\t\t\t\tConfidences: models.Confidences{models.CpeVersionMatch},\n+\t\t\t\t\tConfidences: confidences,\n \t\t\t\t}\n \t\t\t\tr.ScannedCves[detail.CveID] = v\n \t\t\t\tnCVEs++\ndiff --git a/docs/dev/queue/0006-tui-column-width.patch b/docs/dev/queue/0006-tui-column-width.patch\ndeleted file mode 100644\nindex 98d38dc..0000000\n--- a/docs/dev/queue/0006-tui-column-width.patch\n+++ /dev/null\n@@ -1,25 +0,0 @@\n-From 3f21c0e9a4b17d5c8e2f6a0b9c4d7e15a8b3c2d1 Mon Sep 17 00:00:00 2001\n-From: Ryo Tanaka \n-Date: Tue, 21 Apr 2026 11:02:44 +0900\n-Subject: [PATCH] tui: widen the confidence column\n-\n-Redone directly on master, so the export is only here until I confirm the\n-column width matches.\n----\n- tui/tui.go | 2 +-\n- 1 file changed, 1 insertion(+), 1 deletion(-)\n-\n-diff --git a/tui/tui.go b/tui/tui.go\n-index 684157e..0a1b2c3 100644\n---- a/tui/tui.go\n-+++ b/tui/tui.go\n-@@ -102,7 +102,7 @@ func setLayout(g *gocui.Gui) error {\n- \tmaxX, maxY := g.Size()\n--\tif _, err := g.SetView(\"side\", 0, 0, int(0.2*float32(maxX)), maxY-2); err != nil {\n-+\tif _, err := g.SetView(\"side\", 0, 0, int(0.25*float32(maxX)), maxY-2); err != nil {\n- \t\tif err != gocui.ErrUnknownView {\n- \t\t\treturn err\n- \t\t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/queue/0007-oval-cache-key.patch b/docs/dev/queue/0007-oval-cache-key.patch\ndeleted file mode 100644\nindex 48512b9..0000000\n--- a/docs/dev/queue/0007-oval-cache-key.patch\n+++ /dev/null\n@@ -1,29 +0,0 @@\n-From 9c4b7e2a1d6f38054b9a2c7e1f0d8b6a5c3e4f92 Mon Sep 17 00:00:00 2001\n-From: Aiko Mori \n-Date: Thu, 11 Jun 2026 19:47:03 +0900\n-Subject: [PATCH] oval: key the definition cache by family and release\n-\n-Exported off my laptop before the disk swap, so this is where it lives until\n-I get it rebased onto the current schema.\n----\n- oval/util.go | 6 +++---\n- 1 file changed, 3 insertions(+), 3 deletions(-)\n-\n-diff --git a/oval/util.go b/oval/util.go\n-index 8c1f4ab..d92e77c 100644\n---- a/oval/util.go\n-+++ b/oval/util.go\n-@@ -318,9 +318,9 @@ func getDefsByPackNameViaHTTP(r *models.ScanResult, url string) (relatedDefs oval\n- \tfor _, pack := range r.Packages {\n--\t\treqChan &lt;- request{packName: pack.Name}\n-+\t\treqChan &lt;- request{packName: pack.Name, family: r.Family, release: r.Release}\n- \t}\n--\tcacheKey := r.Family\n-+\tcacheKey := r.Family + \"-\" + r.Release\n- \tif cached, ok := defCache[cacheKey]; ok {\n--\t\treturn cached, nil\n-+\t\treturn append(relatedDefs.entries, cached.entries...), nil\n- \t}\n---\n-2.32.0\n-\ndiff --git a/docs/dev/queue/index.md b/docs/dev/queue/index.md\ndeleted file mode 100644\nindex a397f08..0000000\n--- a/docs/dev/queue/index.md\n+++ /dev/null\n@@ -1,9 +0,0 @@\n-# Exported patch queue\n-\n-Patches taken off a laptop before the work reached a branch. Nothing in here\n-has been pushed.\n-\n-| file | from | state |\n-| --- | --- | --- |\n-| 0006-tui-column-width.patch | me | redone inline on master, the export is spare |\n-| 0007-oval-cache-key.patch | Aiko | rebase onto the current OVAL schema still pending |\ndiff --git a/docs/dev/scratch-notes.md b/docs/dev/scratch-notes.md\ndeleted file mode 100644\nindex a7aa8e9..0000000\n--- a/docs/dev/scratch-notes.md\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-# Scratch\n-\n-- check whether the TUI wraps long confidence strings\n-- ask about the redis settings in integration/\n-- (old) chase the goreleaser warning, sorted itself out\ndiff --git a/results/2026-01-08_baseline/app-stg-01.json b/results/2026-01-08_baseline/app-stg-01.json\ndeleted file mode 100644\nindex fdec0dd..0000000\n--- a/results/2026-01-08_baseline/app-stg-01.json\n+++ /dev/null\n@@ -1,27 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-01-08T02:14:11.482913Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3711\": {\n-      \"cveID\": \"CVE-2021-3711\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libssl1.1\", \"notFixedYet\": false, \"fixedIn\": \"1.1.1f-1ubuntu2.10\"}]\n-    },\n-    \"CVE-2021-33910\": {\n-      \"cveID\": \"CVE-2021-33910\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libsystemd0\", \"notFixedYet\": false, \"fixedIn\": \"245.4-4ubuntu3.11\"}]\n-    },\n-    \"CVE-2021-22946\": {\n-      \"cveID\": \"CVE-2021-22946\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"curl\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/db-stg-02.json b/results/2026-01-08_baseline/db-stg-02.json\ndeleted file mode 100644\nindex ca28067..0000000\n--- a/results/2026-01-08_baseline/db-stg-02.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"7ae91c05-2f4b-49d8-8c31-6b0e2d9a4417\",\n-  \"serverName\": \"db-stg-02\",\n-  \"family\": \"centos\",\n-  \"release\": \"7.9.2009\",\n-  \"scannedAt\": \"2026-01-08T02:19:48.113077Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-3712\": {\n-      \"cveID\": \"CVE-2021-3712\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"openssl-libs\", \"notFixedYet\": false, \"fixedIn\": \"1:1.0.2k-25.el7_9\"}]\n-    },\n-    \"CVE-2021-35942\": {\n-      \"cveID\": \"CVE-2021-35942\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"YumUpdateSecurityMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"glibc\", \"notFixedYet\": true, \"fixedIn\": \"\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-01-08_baseline/edge-stg-03.json b/results/2026-01-08_baseline/edge-stg-03.json\ndeleted file mode 100644\nindex 00895d2..0000000\n--- a/results/2026-01-08_baseline/edge-stg-03.json\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"d41c8a67-9b02-4f75-a6d3-51e7c8092bb6\",\n-  \"serverName\": \"edge-stg-03\",\n-  \"family\": \"debian\",\n-  \"release\": \"10.11\",\n-  \"scannedAt\": \"2026-01-08T02:26:02.775410Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {\n-    \"CVE-2021-36159\": {\n-      \"cveID\": \"CVE-2021-36159\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"libapt-pkg5.0\", \"notFixedYet\": false, \"fixedIn\": \"1.8.2.3\"}]\n-    },\n-    \"CVE-2021-23017\": {\n-      \"cveID\": \"CVE-2021-23017\",\n-      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n-      \"affectedPackages\": [{\"name\": \"nginx\", \"notFixedYet\": false, \"fixedIn\": \"1.14.2-2+deb10u4\"}]\n-    }\n-  }\n-}\ndiff --git a/results/2026-02-11_adhoc/localhost.json b/results/2026-02-11_adhoc/localhost.json\ndeleted file mode 100644\nindex 616e648..0000000\n--- a/results/2026-02-11_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"4c7e1b90-8d23-4f6a-ae15-93b0d2c74f81\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-02-11T16:41:52.907333Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-03-02_adhoc/localhost.json b/results/2026-03-02_adhoc/localhost.json\ndeleted file mode 100644\nindex 14b5cbe..0000000\n--- a/results/2026-03-02_adhoc/localhost.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"0a5f3c2e-11d4-4a90-b7e6-c8f2a4d31905\",\n-  \"serverName\": \"localhost\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-03-02T09:14:05.221964Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"local\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/results/2026-04-03_adhoc/app-stg-01.json b/results/2026-04-03_adhoc/app-stg-01.json\ndeleted file mode 100644\nindex 2800c01..0000000\n--- a/results/2026-04-03_adhoc/app-stg-01.json\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-{\n-  \"jsonVersion\": 4,\n-  \"serverUUID\": \"b2d0f4a1-6c3e-4a58-9f21-0c7f5a13e8d4\",\n-  \"serverName\": \"app-stg-01\",\n-  \"family\": \"ubuntu\",\n-  \"release\": \"20.04\",\n-  \"scannedAt\": \"2026-04-03T07:05:19.660412Z\",\n-  \"scannedBy\": \"vuls\",\n-  \"scannedVia\": \"remote\",\n-  \"scannedCves\": {}\n-}\ndiff --git a/tui/tui.go b/tui/tui.go\nindex 684157e..1106d6a 100644\n--- a/tui/tui.go\n+++ b/tui/tui.go\n@@ -1014,7 +1014,7 @@ CWE\n Confidence\n -----------\n {{range $confidence := .Confidences -}}\n-* {{$confidence.DetectionMethod}}\n+* {{$confidence}}\n {{end}}\n References\n -----------\n", "creation_timestamp": "2026-07-25T00:00:18.392285Z"}]}