round56: Kritischer Bugfix - Geraete mit 0 von masscan gefundenen Ports loesten faelschlich vollen 65535-Port-Fallback-Scan aus

This commit is contained in:
2026-07-26 12:50:41 +02:00
parent ca8c8c1d3b
commit 75bc5725e4

View File

@@ -391,7 +391,21 @@ export async function scanRoutes(app: FastifyInstance): Promise<void> {
return;
}
try {
const masscanPorts = masscanBatch?.get(device.ip);
// WICHTIG (Bugfix round56): masscanBatch.get(device.ip) liefert
// "undefined" in ZWEI völlig unterschiedlichen Fällen: (a) der
// gesamte masscan-Batch ist fehlgeschlagen (masscanBatch ===
// null), ODER (b) der Batch war erfolgreich, aber DIESES
// Gerät hat schlicht KEINE offenen Ports - ein bei Handys/
// Smart-Geräten völlig normales, gültiges Ergebnis. Der
// bisherige Code hat beide Fälle identisch behandelt und
// damit für JEDES Gerät mit null gefundenen Ports fälschlich
// einen kompletten, langsamen 65535-Port-TCP-Fallback-Scan
// ausgelöst - genau das, was masscan eigentlich vermeiden
// sollte. Ein leeres Array ist in JS truthy (nur undefined/
// null/0/""/NaN/false sind falsy), daher reicht es, hier statt
// "undefined" bewusst ein leeres Array zu liefern, wenn der
// Batch als Ganzes erfolgreich war.
const masscanPorts = masscanBatch ? masscanBatch.get(device.ip) ?? [] : undefined;
const preFetched: PreFetchedScanData = {
masscanAttempted: true,
masscanPorts,