Handle blank issue IDs

This commit is contained in:
2026-03-20 16:13:52 -05:00
parent 02a1965aef
commit 59212dc014
5 changed files with 61 additions and 7 deletions
@@ -0,0 +1,9 @@
[
{
"id": "BLANK-000000",
"summary": "Fixed a Denial-of-Service (DoS) vulnerability in the GlobalProtect portal and gateway ([CVE-2021-3063](https://security.paloaltonetworks.com/CVE-2021-3063)).",
"resolved": "",
"caveat": "",
"renderedHtml": "<p>Fixed a Denial-of-Service (DoS) vulnerability in the GlobalProtect portal and gateway (<a href=\"https://security.paloaltonetworks.com/CVE-2021-3063\">CVE-2021-3063</a>).</p>\n"
}
]
+9
View File
@@ -0,0 +1,9 @@
---
type: Addressed
product: PAN-OS
version: 9.1.11-h3
---
## BLANK-000000
Fixed a Denial-of-Service (DoS) vulnerability in the GlobalProtect portal and gateway ([CVE-2021-3063](https://security.paloaltonetworks.com/CVE-2021-3063)).
+29
View File
@@ -0,0 +1,29 @@
<table class="table colsep rowsep table-striped">
<!--cq:include script="../../common/tablestack.jsp" /-->
<colgroup>
<col style="width: 50.0%">
<col style="width: 50.0%">
</colgroup>
<thead class="thead" data-sticky-top="62" style="top: 62px;">
<tr class="row rowsep">
<th class="entry">
<div class="p"><b class="ph b">Issue ID</b></div>
</th>
<th class="entry">
<div class="p"><b class="ph b">Description</b></div>
</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry">
<div class="p"><b class="ph b"></b></div>
</td>
<td class="entry relcol">
<div class="p">Fixed a Denial-of-Service (DoS) vulnerability
in the GlobalProtect portal and gateway (<a class="xref" href="https://security.paloaltonetworks.com/CVE-2021-3063" title="" data-scope="external" data-format="html" data-type="" target="_blank">CVE-2021-3063</a>).
</div>
</td>
</tr>
</tbody>
</table>
+3
View File
@@ -0,0 +1,3 @@
{
"description": "Tests the scenario where the issue ID cell contains only a dash (no ID disclosed), which should produce BLANK-000000."
}
+9 -5
View File
@@ -136,12 +136,15 @@ export function parseIssuesFromHtmlTable(htmlText, options = {}) {
}
const issueIdListMatch = leftCellText.match(ISSUE_ID_LIST_PREFIX_PATTERN);
if (!issueIdListMatch) {
const isBlankId = !issueIdListMatch && /^[\u2014\u2013\-]+$/.test(leftCellText.trim());
if (!issueIdListMatch && !isBlankId) {
return;
}
const issueIdListText = String(issueIdListMatch[1] || '');
const issueIds = Array.from(issueIdListText.matchAll(new RegExp(ISSUE_ID_PATTERN.source, 'ig')))
const issueIds = isBlankId
? ['BLANK-000000']
: Array.from(String(issueIdListMatch[1] || '').matchAll(new RegExp(ISSUE_ID_PATTERN.source, 'ig')))
.map(match => String(match[1] || '').toUpperCase())
.filter(Boolean);
@@ -149,8 +152,9 @@ export function parseIssuesFromHtmlTable(htmlText, options = {}) {
return;
}
const leftCellTrailingText = normalizeWhitespace(leftCellText.slice(issueIdListMatch[0].length));
const metadataText = leftCellTrailingText.replace(/^[-:;,.\s]+/, '');
const metadataText = isBlankId
? ''
: normalizeWhitespace(leftCellText.slice(issueIdListMatch[0].length)).replace(/^[-:;,.\s]+/, '');
const resolved = isResolvedMetadataText(metadataText) ? metadataText : '';
const description = rightCellText;