[Git][security-tracker-team/security-tracker][remove-cve-dist-tags-on-DSA] 2 commits: Add a script to remove dist tags (e.g. postponed) from CVE/list

Emilio Pozuelo Monfort (@pochu) pochu at debian.org
Wed Nov 3 11:56:16 GMT 2021



Emilio Pozuelo Monfort pushed to branch remove-cve-dist-tags-on-DSA at Debian Security Tracker / security-tracker


Commits:
155c2ca5 by Emilio Pozuelo Monfort at 2021-11-03T12:55:14+01:00
Add a script to remove dist tags (e.g. postponed) from CVE/list

This can be useful when releasing a DSA that fixes some CVEs that
were previously triaged as no-dsa.

- - - - -
464007fa by Emilio Pozuelo Monfort at 2021-11-03T12:55:14+01:00
gen-DSA: call remove-cve-dist-tags

This will remove 'obsolete' tags for a CVE for a given release
and package if it is being fixed in a security update.

- - - - -


2 changed files:

- bin/gen-DSA
- + bin/remove-cve-dist-tags


Changes:

=====================================
bin/gen-DSA
=====================================
@@ -367,6 +367,7 @@ for dist in $CODENAMES; do
 	fi
     fi
     [ -z "$version" ] || setvar "${dist}_VERSION" "$version"
+    [ -z "$version" ] || bin/remove-cve-dist-tags "${dist}" "${PACKAGE}" ${CVE}
 done
 
 if ! $save; then


=====================================
bin/remove-cve-dist-tags
=====================================
@@ -0,0 +1,60 @@
+#!/usr/bin/python3
+#
+# Remove no-dsa tags from data/CVE/list
+#
+# Copyright © 2021 Emilio Pozuelo Monfort <pochu at debian.org>
+
+import os.path
+import sys
+
+import setup_paths  # noqa
+import config
+from sectracker.parsers import cvelist, writecvelist, PackageAnnotation
+
+
+def keep_annotation(cve, annotation):
+    if not isinstance(annotation, PackageAnnotation):
+        return True
+
+    if cve.header.name in cves and \
+       annotation.release == release and \
+       annotation.package == package:
+        print(f"removing annotation for {cve.header.name}/{package}/{release}")
+        return False
+
+    return True
+
+
+def parse_list(path):
+    data, messages = cvelist(path)
+
+    return data
+
+if len(sys.argv) <= 3:
+    # assume there are no CVEs, so nothing to do
+    sys.exit(0)
+
+release = sys.argv[1]
+package = sys.argv[2]
+cves = sys.argv[3:]
+
+main_list = os.path.dirname(__file__) + '/../data/CVE/list'
+# check if another file was specified in config, e.g. a ExtendedFile
+distconfig = config.get_config()[release]
+if 'maincvefile' in distconfig:
+    main_list = os.path.dirname(__file__) + '/../' + distconfig['maincvefile']
+
+data = parse_list(main_list)
+new_data = []
+
+for cve in data:
+    annotations = list(
+        annotation
+        for annotation in cve.annotations
+        if keep_annotation(cve, annotation)
+    )
+    cve = cve._replace(annotations=annotations)
+    new_data.append(cve)
+
+with open(main_list, 'w') as f:
+    writecvelist(new_data, f)



View it on GitLab: https://salsa.debian.org/security-tracker-team/security-tracker/-/compare/5f36c52fbfd00f1ccd3ac7b03895b435cce5d027...464007faa3b0fc6c3ed75cccb4264121687e0cda

-- 
View it on GitLab: https://salsa.debian.org/security-tracker-team/security-tracker/-/compare/5f36c52fbfd00f1ccd3ac7b03895b435cce5d027...464007faa3b0fc6c3ed75cccb4264121687e0cda
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-security-tracker-commits/attachments/20211103/33a99186/attachment-0001.htm>


More information about the debian-security-tracker-commits mailing list