> Ok, according to the responsible company:
> "CLSID [...] refer[s] to a 128-bit integer with a low statistical
> likelihood of being duplicated so that it can be used as a unique
> identifier across computers and networks. Typically, this identifier is
> represented either as a 16-member array of bytes or as a specially
> formatted string of hexadecimal digits (where the characters a-f, or A-F,
> represent the decimal numbers 10-15). This string representation consists
> of either 32 contiguous hexadecimal digits or of groups of 8, 4, 4, 4, and
> 12 hexadecimal digits, separated by hyphens. The hyphenated string
> representation optionally can be enclosed in parentheses or braces ({})."
>      -- http://msdn2.microsoft.com/en-us/microsoft.aspnet.snapin.clsid.aspx
>
> So I guess we need sth. like
> \{[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}\}

The question here is not what is a valid CLSID, but what syntax does
MS software interpret as a CLSID. I remember reading some discussion about
it when the CLSID exploitability became popular, but can't find it now
(perhaps it was in "Bypassing content filtering whitepaper", or similar).
I think MS is quite tolerant, e.g. to a missing trailing '}' and other
anomalies, which made me relax the regexp - probably too much.
Can someone find more info on the topic?

  Mark


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to