head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.8 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.6 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.4 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.2 pkgsrc-2011Q2-base:1.2 pkgsrc-2010Q3:1.1.0.12 pkgsrc-2010Q3-base:1.1 pkgsrc-2010Q2:1.1.0.10 pkgsrc-2010Q2-base:1.1 pkgsrc-2010Q1:1.1.0.8 pkgsrc-2010Q1-base:1.1 pkgsrc-2009Q4:1.1.0.6 pkgsrc-2009Q4-base:1.1 pkgsrc-2009Q3:1.1.0.4 pkgsrc-2009Q3-base:1.1 pkgsrc-2009Q2:1.1.0.2; locks; strict; comment @# @; 1.2 date 2010.11.01.18.03.04; author adam; state dead; branches; next 1.1; 1.1 date 2009.08.12.03.37.28; author taca; state Exp; branches 1.1.2.1; next ; 1.1.2.1 date 2009.08.12.03.37.28; author tron; state dead; branches; next 1.1.2.2; 1.1.2.2 date 2009.08.14.10.18.20; author tron; state Exp; branches; next ; desc @@ 1.2 log @Changes 2.0.64: * SECURITY: CVE-2010-1452 (cve.mitre.org) mod_dav: Fix Handling of requests without a path segment. * SECURITY: CVE-2009-1891 (cve.mitre.org) Fix a potential Denial-of-Service attack against mod_deflate or other modules, by forcing the server to consume CPU time in compressing a large file after a client disconnects. * SECURITY: CVE-2009-3095 (cve.mitre.org) mod_proxy_ftp: sanity check authn credentials. * SECURITY: CVE-2009-3094 (cve.mitre.org) mod_proxy_ftp: NULL pointer dereference on error paths. * SECURITY: CVE-2009-3555 (cve.mitre.org) mod_ssl: Comprehensive fix of the TLS renegotiation prefix injection attack when compiled against OpenSSL version 0.9.8m or later. Introduces the 'SSLInsecureRenegotiation' directive to reopen this vulnerability and offer unsafe legacy renegotiation with clients which do not yet support the new secure renegotiation protocol, RFC 5746. * SECURITY: CVE-2009-3555 (cve.mitre.org) mod_ssl: A partial fix for the TLS renegotiation prefix injection attack for OpenSSL versions prior to 0.9.8l; reject any client-initiated renegotiations. Forcibly disable keepalive for the connection if there is any buffered data readable. Any configuration which requires renegotiation for per-directory/location access control is still vulnerable, unless using openssl 0.9.8l or later. * SECURITY: CVE-2010-0434 (cve.mitre.org) Ensure each subrequest has a shallow copy of headers_in so that the parent request headers are not corrupted. Elimiates a problematic optimization in the case of no request body. * SECURITY: CVE-2008-2364 (cve.mitre.org) mod_proxy_http: Better handling of excessive interim responses from origin server to prevent potential denial of service and high memory usage. * SECURITY: CVE-2010-0425 (cve.mitre.org) mod_isapi: Do not unload an isapi .dll module until the request processing is completed, avoiding orphaned callback pointers. * SECURITY: CVE-2008-2939 (cve.mitre.org) mod_proxy_ftp: Prevent XSS attacks when using wildcards in the path of the FTP URL. Discovered by Marc Bevand of Rapid7. * Fix recursive ErrorDocument handling. * mod_ssl: Do not do overlapping memcpy. * Add Set-Cookie and Set-Cookie2 to the list of headers allowed to pass through on a 304 response. * apxs: Fix -A and -a options to ignore whitespace in httpd.conf @ text @$NetBSD: patch-ac,v 1.1 2009/08/12 03:37:28 taca Exp $ Fix for http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-2412. --- apr/memory/unix/apr_pools.c.orig 2007-10-17 13:09:40.000000000 +0900 +++ apr/memory/unix/apr_pools.c @@@@ -189,15 +189,19 @@@@ APR_DECLARE(void) apr_allocator_max_free } static APR_INLINE -apr_memnode_t *allocator_alloc(apr_allocator_t *allocator, apr_size_t size) +apr_memnode_t *allocator_alloc(apr_allocator_t *allocator, apr_size_t in_size) { apr_memnode_t *node, **ref; apr_uint32_t i, index, max_index; + apr_size_t size; /* Round up the block size to the next boundary, but always * allocate at least a certain size (MIN_ALLOC). */ - size = APR_ALIGN(size + APR_MEMNODE_T_SIZE, BOUNDARY_SIZE); + size = APR_ALIGN(in_size + APR_MEMNODE_T_SIZE, BOUNDARY_SIZE); + if (size < in_size) { + return NULL; + } if (size < MIN_ALLOC) size = MIN_ALLOC; @@@@ -625,13 +629,19 @@@@ void netware_pool_proc_cleanup () * Memory allocation */ -APR_DECLARE(void *) apr_palloc(apr_pool_t *pool, apr_size_t size) +APR_DECLARE(void *) apr_palloc(apr_pool_t *pool, apr_size_t in_size) { apr_memnode_t *active, *node; void *mem; apr_uint32_t free_index; + apr_size_t size; - size = APR_ALIGN_DEFAULT(size); + size = APR_ALIGN_DEFAULT(in_size); + if (size < in_size) { + if (pool->abort_fn) + pool->abort_fn(APR_ENOMEM); + + } active = pool->active; /* If the active node has enough bytes left, use it. */ @@@@ -696,7 +706,6 @@@@ APR_DECLARE(void *) apr_pcalloc(apr_pool { void *mem; - size = APR_ALIGN_DEFAULT(size); if ((mem = apr_palloc(pool, size)) != NULL) { memset(mem, 0, size); } @ 1.1 log @Fix security problem of CVE-2009-2412 adding patches described in it. Bump PKGREVISION. @ text @d1 1 a1 1 $NetBSD$ @ 1.1.2.1 log @file patch-ac was added on branch pkgsrc-2009Q2 on 2009-08-14 10:18:20 +0000 @ text @d1 58 @ 1.1.2.2 log @Pullup ticket #2865 - requested by taca apr0: security patch Revisions pulled up: - devel/apr0/Makefile 1.6 - devel/apr0/distinfo 1.4 - devel/apr0/patches/patch-ab 1.1 - devel/apr0/patches/patch-ac 1.1 --- Module Name: pkgsrc Committed By: taca Date: Wed Aug 12 03:37:28 UTC 2009 Modified Files: pkgsrc/devel/apr0: Makefile distinfo Added Files: pkgsrc/devel/apr0/patches: patch-ab patch-ac Log Message: Fix security problem of CVE-2009-2412 adding patches described in it. Bump PKGREVISION. @ text @a0 58 $NetBSD: patch-ac,v 1.1 2009/08/12 03:37:28 taca Exp $ Fix for http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-2412. --- apr/memory/unix/apr_pools.c.orig 2007-10-17 13:09:40.000000000 +0900 +++ apr/memory/unix/apr_pools.c @@@@ -189,15 +189,19 @@@@ APR_DECLARE(void) apr_allocator_max_free } static APR_INLINE -apr_memnode_t *allocator_alloc(apr_allocator_t *allocator, apr_size_t size) +apr_memnode_t *allocator_alloc(apr_allocator_t *allocator, apr_size_t in_size) { apr_memnode_t *node, **ref; apr_uint32_t i, index, max_index; + apr_size_t size; /* Round up the block size to the next boundary, but always * allocate at least a certain size (MIN_ALLOC). */ - size = APR_ALIGN(size + APR_MEMNODE_T_SIZE, BOUNDARY_SIZE); + size = APR_ALIGN(in_size + APR_MEMNODE_T_SIZE, BOUNDARY_SIZE); + if (size < in_size) { + return NULL; + } if (size < MIN_ALLOC) size = MIN_ALLOC; @@@@ -625,13 +629,19 @@@@ void netware_pool_proc_cleanup () * Memory allocation */ -APR_DECLARE(void *) apr_palloc(apr_pool_t *pool, apr_size_t size) +APR_DECLARE(void *) apr_palloc(apr_pool_t *pool, apr_size_t in_size) { apr_memnode_t *active, *node; void *mem; apr_uint32_t free_index; + apr_size_t size; - size = APR_ALIGN_DEFAULT(size); + size = APR_ALIGN_DEFAULT(in_size); + if (size < in_size) { + if (pool->abort_fn) + pool->abort_fn(APR_ENOMEM); + + } active = pool->active; /* If the active node has enough bytes left, use it. */ @@@@ -696,7 +706,6 @@@@ APR_DECLARE(void *) apr_pcalloc(apr_pool { void *mem; - size = APR_ALIGN_DEFAULT(size); if ((mem = apr_palloc(pool, size)) != NULL) { memset(mem, 0, size); } @