Changeset b305eb5b7 in mythtv
- Timestamp:
- Oct 17, 2014, 4:32:02 PM (10 years ago)
- Branches:
- fixes/0.27
- Children:
- c4de5c5e17
- Parents:
- e830993e8
- git-author:
- Stuart Morgan <smorgan@…> (10/17/14 16:32:02)
- git-committer:
- Stuart Morgan <smorgan@…> (10/17/14 18:18:22)
- File:
-
- 1 edited
-
mythtv/libs/libmythupnp/ssdp.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
mythtv/libs/libmythupnp/ssdp.cpp
re830993e8 rb305eb5b7 315 315 void SSDP::ProcessData( MSocketDevice *pSocket ) 316 316 { 317 QHostAddress peerAddress = pSocket->peerAddress(); 318 quint16 peerPort = pSocket->peerPort (); 319 320 // Mitigate against SSDP Reflection DDOS attacks 321 // Disallow device discovery from non-local addresses 322 // Security Advisory (Akamai): 323 // https://www.prolexic.com/kcresources/prolexic-threat-advisories/prolexic-threat-advisory-ssdp-reflection-ddos-attacks/ssdp-reflection-attacks-cybersecurity-locked.html 324 // https://www.prolexic.com/knowledge-center-ddos-threat-advisory-ssdp-reflection-ddos-attacks.html 325 // 326 // TODO: We may want to restrict this to the same subnet as the server 327 // for added security 328 if (((peerAddress.protocol() == QAbstractSocket::IPv4Protocol) && 329 (!peerAddress.isInSubnet(QHostAddress("172.16.0.0"), 12) && 330 !peerAddress.isInSubnet(QHostAddress("192.168.0.0"), 16) && 331 !peerAddress.isInSubnet(QHostAddress("10.0.0.0"), 8))) || 332 ((peerAddress.protocol() == QAbstractSocket::IPv6Protocol) && 333 !peerAddress.isInSubnet(pSocket->address(), 64))) // default subnet size is assumed to be /64 334 { 335 LOG(VB_GENERAL, LOG_CRIT, QString("SSDP Request from WAN IP " 336 "address (%1). Possible SSDP " 337 "Reflection attempt. Ignoring as " 338 "security risk.") 339 .arg(peerAddress.toString())); 340 pSocket->readAll(); // Discard the data in the socket buffer 341 return; 342 } 343 317 344 QByteArray buffer; 318 345 long nBytes = 0; … … 366 393 continue; 367 394 368 QHostAddress peerAddress = pSocket->peerAddress();369 quint16 peerPort = pSocket->peerPort ();370 371 395 // ------------------------------------------------------------------ 372 396 QString str = QString(buffer.constData());
Note: See TracChangeset
for help on using the changeset viewer.
