diff --git a/CHANGELOG b/CHANGELOG index acce1e5a3..996d43cb6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,8 @@ #Nmap Changelog ($Id$); -*-text-*- +o [NSE][GH#3123] WS-Discovery parsing would error out if the MessageID UUID + was not prefixed with "urn:". [nnposter] + Nmap 7.97 [2025-05-12] o [Zenmap][GH#3087] Fix a crash when starting a scan on Windows in locales that diff --git a/nselib/wsdd.lua b/nselib/wsdd.lua index 4ad537d22..810b782ac 100644 --- a/nselib/wsdd.lua +++ b/nselib/wsdd.lua @@ -134,7 +134,7 @@ Decoders = { local response = {} -- extracts the messagid, so we can check if we already got a response - response.msgid = data:match("<[^:]*:MessageID>urn:uuid:([^<]*)") + response.msgid = data:match("<%w+:MessageID>[%w:]-%f[^>:]uuid:([^<]*)") -- if unable to parse msgid return nil if ( not(response.msgid) ) then