Edit report at https://bugs.php.net/bug.php?id=64133&edit=1

 ID:                 64133
 User updated by:    alex at hollerith dot net
 Reported by:        alex at hollerith dot net
 Summary:            overflow in PHP_FUNCTION(openssl_csr_sign)
 Status:             Not a bug
 Type:               Bug
 Package:            OpenSSL related
 Operating System:   FreeBSD i386
 PHP Version:        master-Git-2013-02-02 (Git)
 Block user comment: N
 Private report:     N

 New Comment:

I've asked on the openssl-users mailinglist and was told that there is a new 
API 
function in OpenSSL that would be able to work around the problem:

X509_time_adj_ex(X509_get_notAfter(x),days, 0, NULL);

Not sure if you want to make the effort, I suppose it would mean to check for 
what 
Version of OpenSSL is available and then either call one or the other API 
function 
- I just thought it might be helpful to have that information here in the 
ticket.


Previous Comments:
------------------------------------------------------------------------
[2013-02-02 15:57:17] paj...@php.net

See http://rt.openssl.org/Ticket/Display.html?id=534

Not an issue in PHP, the signature of X509_gmtime_adj actually expects a long.

------------------------------------------------------------------------
[2013-02-02 15:34:11] alex at hollerith dot net

Description:
------------
Potential overflow in this code:

/* {{{ proto resource openssl_csr_sign(mixed csr, mixed x509, mixed priv_key, 
long 
days [, array config_args [, long serial]])
   Signs a cert with another CERT */
PHP_FUNCTION(openssl_csr_sign)
{
   zval ** zcert = NULL, **zcsr, **zpkey, *args = NULL;
   long num_days;
......
       X509_gmtime_adj(X509_get_notAfter(new_cert), (long)60*60*24*num_days);
......

When "num_days" is big, say 36500 (for 100 years) this casting to "long" will 
overflow in 32-bit environments where usually "sizeof(long) = 4".

This is relevant for applications like the pfsense Firewall system on embedded 
hardware like the Soekris6501, where only i386 versions can be installed.



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=64133&edit=1

Reply via email to