PHP até 7.0.5 ZIP Archive zend_string.h ZipArchive::getFromIndex Excesso de tampão

CVSS Meta Pontuação TemporáriaPreço atual do exploit (≈)Nota de Interesse CTI
9.3$0-$5k0.00

Sumárioinformação

Foi identificada uma vulnerabilidade classificada como crítico em PHP até 7.0.5. Afetado é a função ZipArchive::getFromIndex do arquivo zend_string.h do componente ZIP Archive Handler. A manipulação com uma entrada desconhecida leva a Excesso de tampão. Esta vulnerabilidade é conhecida como CVE-2016-3078. É possível lançar o ataque remotamente. Além disso, existe um exploit disponível. Recomenda-se a actualização do componente afectado.

Detalhesinformação

Foi identificada uma vulnerabilidade classificada como crítico em PHP até 7.0.5. Afetado é a função ZipArchive::getFromIndex do arquivo zend_string.h do componente ZIP Archive Handler. A manipulação com uma entrada desconhecida leva a Excesso de tampão. Usar CWE para declarar o problema leva a CWE-190. A fraqueza foi publicada 28/04/2016 por Hans Jerry Illikainen (Site). O comunicado está disponível para download em openwall.com. A divulgação pública foi coordenada com o fornecedor.

Esta vulnerabilidade é conhecida como CVE-2016-3078. A atribuição do CVE ocorreu em 10/03/2016. É possível lançar o ataque remotamente. Detalhes técnicos estão disponíveis. A popularidade desta vulnerabilidade está acima da média. Além disso, existe um exploit disponível. O exploit foi divulgado ao público e pode ser utilizado. Atualmente, o preço atual de um exploit pode ser aproximadamente USD $0-$5k no momento. A razão para esta vulnerabilidade é esta parte do código:

static zend_always_inline zend_string *zend_string_alloc(size_t len, int persistent)
{
   zend_string ret = (zend_string )pemalloc(ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); // (4)
   ...
   ZSTR_LEN(ret) = len;                                                                                  // (5)
   return ret;
}
O comunicado destaca:
The `size' argument to the `pemalloc' macro is aligned/adjusted in (4) whilst the original value of `len' is stored as the size of the allocated buffer in (5). No boundary checking is done in (4) and it may thus wrap, which would lead to a heap overflow during the invocation of `zip_fread()' in (3) as the `toread' argument is `ZSTR_LEN(buffer).

É declarado como prova de conceito. A exploração é partilhada para download em exploit-db.com. Como 0 dia, o preço estimado do subsolo foi de cerca de $25k-$100k. O código usado pelo exploit é:

$zip = new ZipArchive();
if ($zip->open($_FILES["file"]["tmp_name"]) !== TRUE) {
   echo "cannot open archive\n";
} else {
   for ($i = 0; $i < $zip->numFiles; $i++) {
      $data = $zip->getFromIndex($i);
}
$zip->close();
O Nessus oferece um plugin com o ID 91320 para detecção de vulnerabilidades. Encontra-se atribuído à família Ubuntu Local Security Checks. O plugin está em execução no contexto do tipo l. O scanner de vulnerabilidade comercial Qualys é capaz de testar este problema com plugin 196483 (Ubuntu Security Notification for Php5, Php7.0 Vulnerabilities (USN-2984-1)).

A actualização para a versão 7.0.6 é capaz de abordar esta questão. Recomenda-se a actualização do componente afectado. Uma mitigação possível foi disponibilizada 4 semanas depois da divulgação da vulnerabilidade.

A vulnerabilidade está também documentada noutras bases de dados de vulnerabilidade: SecurityTracker (ID 1035701) e Tenable (91320).

Produtoinformação

Tipo

Nome

Versão

Licença

Site

CPE 2.3informação

CPE 2.2informação

CVSSv4informação

VulDB Vetor: 🔍
VulDB Fiabilidade: 🔍

CVSSv3informação

VulDB Meta Pontuação Base: 9.8
VulDB Meta Pontuação Temporária: 9.3

VulDB Pontuação Base: 9.8
VulDB Pontuação Temporária: 8.8
VulDB Vetor: 🔍
VulDB Fiabilidade: 🔍

NVD Pontuação Base: 9.8
NVD Vetor: 🔍

CVSSv2informação

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplexidadeAutenticaçãoConfidencialidadeIntegridadeDisponibilidade
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear

VulDB Pontuação Base: 🔍
VulDB Pontuação Temporária: 🔍
VulDB Fiabilidade: 🔍

NVD Pontuação Base: 🔍

Exploraçãoinformação

Classe: Excesso de tampão
CWE: CWE-190 / CWE-189
CAPEC: 🔍
ATT&CK: 🔍

Físico: Não
Local: Não
Remoto: Sim

Disponibilidade: 🔍
Acesso: Público
Estado: Prova de conceito
Autor: Hans Jerry Illikainen
Linguagem de programação: 🔍
Descarregar: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

Tendência de preços: 🔍
Estimativa de preço atual: 🔍

0-DayDesbloquearDesbloquearDesbloquearDesbloquear
HojeDesbloquearDesbloquearDesbloquearDesbloquear

Nessus ID: 91320
Nessus Nome: Ubuntu 12.04 LTS / 14.04 LTS / 15.10 / 16.04 LTS : php5, php7.0 vulnerabilities (USN-2984-1)
Nessus Ficheiro: 🔍
Nessus Risco: 🔍
Nessus Família: 🔍
Nessus Context: 🔍

OpenVAS ID: 803381
OpenVAS Nome: PHP Denial of Service Vulnerability - 01 - Aug16 (Linux)
OpenVAS Ficheiro: 🔍
OpenVAS Família: 🔍

Qualys ID: 🔍
Qualys Nome: 🔍

Exploit-DB: 🔍

Inteligência de ameaçasinformação

Interesse: 🔍
Atores ativos: 🔍
Grupos APT ativos: 🔍

Contramedidasinformação

Recomendação: Atualização
Estado: 🔍

Tempo de resposta: 🔍
Tempo 0-dia: 🔍
Tempo de exposição: 🔍
Tempo de atraso de exploração: 🔍

Atualização: PHP 7.0.6
Patch: github.com

Linha do tempoinformação

10/03/2016 🔍
28/04/2016 +49 dias 🔍
28/04/2016 +0 dias 🔍
28/04/2016 +0 dias 🔍
02/05/2016 +4 dias 🔍
24/05/2016 +22 dias 🔍
25/05/2016 +1 dias 🔍
07/08/2016 +74 dias 🔍
11/06/2024 +2865 dias 🔍

Fontesinformação

Produto: php.org

Aconselhamento: USN-2984-1
Pessoa: Hans Jerry Illikainen
Estado: Confirmado
Confirmação: 🔍
Coordenado: 🔍

CVE: CVE-2016-3078 (🔍)
GCVE (CVE): GCVE-0-2016-3078
GCVE (VulDB): GCVE-100-83075
SecurityTracker: 1035701

scip Labs: https://www.scip.ch/en/?labs.20161013
Veja também: 🔍

Entradainformação

Criado: 02/05/2016 08h53
Atualizado: 11/06/2024 12h06
Ajustamentos: 02/05/2016 08h53 (82), 22/03/2019 14h03 (12), 27/07/2022 14h54 (5), 27/07/2022 14h55 (1), 11/06/2024 12h06 (15)
Completo: 🔍
Cache ID: 216::103

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Discussão

Ainda sem comentários. Idiomas: pt + es + en.

Por favor, inicie sessão para comentar.

Want to stay up to date on a daily basis?

Enable the mail alert feature now!