Skip to content

Commit 1e857c9

Browse files
guedougpotter2
andcommitted
Check if the Data field exists
Co-Authored-By: gpotter2 <[email protected]>
1 parent ea7cdaf commit 1e857c9

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

scapy/layers/smb.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -788,7 +788,7 @@ def post_build(self, pkt, pay):
788788
)
789789

790790
def mysummary(self):
791-
if self.DataLen:
791+
if getattr(self, "Data", None) is not None:
792792
return self.sprintf("Tran %Name% ") + self.Data.mysummary()
793793
return self.sprintf("Tran %Name%")
794794

test/scapy/layers/smb.uts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,3 +203,13 @@ assert pkt[SMBMailslot_Write].Data.OpCode == 1
203203
assert pkt[SMBMailslot_Write].Data.ServerName == b"MACBOOKPRO-122A\x00"
204204
assert pkt[SMBMailslot_Write].Data.Comment == b"Super's MacBook Pro"
205205
assert pkt[SMBMailslot_Write].Data.Signature == 0xAA55
206+
207+
= OSS-Fuzz Findings
208+
209+
# SMBTransaction_Request
210+
from io import BytesIO
211+
# Issue 69637
212+
file = BytesIO(b'M<\xb2\xa1\x02\x00\x04\x00\x00\x00\x02\xff\xa1\x00\x00\x00\xff\xff\x00\x00\x01\x00\x00\x00\r\x82\xe8Y[\xc6P"\xa1\xb2\x00_h\x00\x00\x00\x00\x10\x94\x00\x01\x00\x00\x1d%\xcb(\xce\x08\x00U\xfa\xf7\x8c\x00\x00@\x00?\x11\xa7R\xe0\xa8\x01\xa1d\xb2\xc3\xd4\n_\x00\x8a \x00\x00\x01\x00\x00\x00\x01\xff\x00\x00\x00\x10\x94\x00\x01\x00\x00\x1d%\xcb(\xce\x08\x00U\xfa\xf7\x8c\x00\x00@\x00?\x11\xa7R\xe0\xa8\x01\xa1d\xb2\xc3\xd4\n_\x00\x8a\xb2\x00\xa1a\xffl\xff\xff\xef\x00\xff\x01\x00\x08\xa1\xa1E\xf9\x00\xa1\x00\x00?\x8c\x08?\x11\x00\xc3\x00+\x10M<\x1a\x01\x00\xffSMB%d\x01\x05\x00\x00\x00\x00\x00\x00\x00\xd4\xc3\xb2\xa1\x02\x00\x04\x00\x00\x00\xf7\x8c\x00\x00@\x00?\x11\xa7R\xe0\xa8\x01\xa1d\xb2\xc3\xd4\n_\x00\x8a\xb2\x00\xa1a\xffl\xff\xff\xef\x00\xff\x01\x00\x08\xa1\xa1')
213+
214+
l = rdpcap(file)
215+
assert l[0][NBTDatagram].summary() == "NBTDatagram / SMB_Header / Tran b''"

0 commit comments

Comments
 (0)