https://bz.apache.org/bugzilla/show_bug.cgi?id=70260

tangent <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |NEW

--- Comment #8 from tangent <[email protected]> ---
Steffen advises he too gets a crash with 2.4.69, using the following basic form
of auth request configuration, and asked if I could try the same with a debug
build.

<Location "/dologin.html">
    SetHandler form-login-handler
    AuthFormLoginRequiredLocation "login.html"
    AuthFormLoginSuccessLocation "success.html"
    AuthFormProvider file
    AuthUserFile "conf/passwd"
    AuthType form
    AuthName realm
    Session On
    SessionCookieName sessioncryptyes path=/
    SessionCryptoPassphrase secret
</Location>

On a test platform, I too get a crash when attempting to post the login
request.

Environment
- Apache HTTP Server 2.4.69
- Windows 10 test platform
- Apache Lounge CMake build process
- Entire stack built with RelWithDebInfo, with PDB debug symbols
- APR-util version shown by the crash report: 1.6.5.0

Steps to reproduce
- Start Apache from the command line using httpd -X
- Visit /flogin.html
- Submit the login form, posting the username and password to /dologin.html
- Apache terminates with an access violation

Crash details
- DMP file analysed with WinDbg
- WinDbg identifies the faulting instruction as:

libaprutil_1!apr_crypto_get_block_key_types+0x1c
mov rax, qword ptr [rdx+8]

Faulting source location:

C:\Development\apache24\src\apr-util-1.6.5\crypto\apr_crypto.c:400

- Extract from !analyse -v

IP_IN_PAGED_CODE: 
libaprutil_1!apr_crypto_get_block_key_types+0
[C:\Development\apache24\src\apr-util-1.6.5\crypto\apr_crypto.c @ 400]
00007ffd`9eee4d30 488b4208        mov     rax,qword ptr [rdx+8]

FAULTING_SOURCE_LINE: 
C:\Development\apache24\src\apr-util-1.6.5\crypto\apr_crypto.c

FAULTING_SOURCE_FILE: 
C:\Development\apache24\src\apr-util-1.6.5\crypto\apr_crypto.c

FAULTING_SOURCE_LINE_NUMBER:  400

SYMBOL_NAME:  libaprutil_1!apr_crypto_get_block_key_types+1c666ff500

MODULE_NAME: libaprutil_1

IMAGE_NAME:  libaprutil-1.dll

STACK_COMMAND: ~67s; .ecxr ; kb

FAILURE_BUCKET_ID: 
INVALID_POINTER_READ_c0000005_libaprutil-1.dll!apr_crypto_get_block_key_types

OS_VERSION:  10.0.19041.1

BUILDLAB_STR:  vb_release

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

IMAGE_VERSION:  1.6.5.0

- Output from .ecxr

0:067> .ecxr
rax=0000000000000000 rbx=0000000000000000 rcx=0000001c666ff568
rdx=0000000000000000 rsi=00000145e31f6ae8 rdi=0000001c666ff630
rip=00007ffd9eee4d30 rsp=0000001c666ff508 rbp=0000001c666ff661
 r8=0000001c666ff630  r9=00000145e31f6ae8 r10=0000001c666ff0e0
r11=5e834be19fb66f0a r12=00000145e31f2110 r13=00000145e31e62e0
r14=00000145e31f2110 r15=00000145e31f6ae8
iopl=0         nv up ei pl nz na po nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010202
libaprutil_1!apr_crypto_get_block_key_types:
00007ffd`9eee4d30 488b4208        mov     rax,qword ptr [rdx+8]
ds:00000000`00000008=????????????????

- Stack trace follows:

0:067> k
  *** Stack trace for last set context - .thread/.cxr resets it
 # Child-SP          RetAddr               Call Site
00 0000001c`666ff508 00007ffd`86d11982    
libaprutil_1!apr_crypto_get_block_key_types
[C:\Development\apache24\src\apr-util-1.6.5\crypto\apr_crypto.c @ 400] 
01 0000001c`666ff510 00007ffd`86d1211b     mod_session_crypto!crypt_init+0x22
[C:\Development\apache24\src\httpd-2.4.69\modules\session\mod_session_crypto.c
@ 196] 
02 0000001c`666ff5a0 00007ffd`86d1276e    
mod_session_crypto!encrypt_string+0x6b
[C:\Development\apache24\src\httpd-2.4.69\modules\session\mod_session_crypto.c
@ 267] 
03 0000001c`666ff6c0 00007ffd`86d41d01    
mod_session_crypto!session_crypto_encode+0x8e
[C:\Development\apache24\src\httpd-2.4.69\modules\session\mod_session_crypto.c
@ 494] 
04 0000001c`666ff710 00007ffd`86d42381    
mod_session!ap_run_session_encode+0x51
[C:\Development\apache24\src\httpd-2.4.69\modules\session\mod_session.c @ 38] 
05 0000001c`666ff740 00007ffd`86d42c03     mod_session!ap_session_save+0x131
[C:\Development\apache24\src\httpd-2.4.69\modules\session\mod_session.c @ 227] 
06 0000001c`666ff790 00007ffd`87389e1c    
mod_session!session_output_filter+0xf3
[C:\Development\apache24\src\httpd-2.4.69\modules\session\mod_session.c @ 456] 
07 0000001c`666ff7e0 00007ffd`8735e959     libhttpd!end_output_stream+0x8c
[C:\Development\apache24\src\httpd-2.4.69\server\protocol.c @ 1707] 
08 0000001c`666ff830 00007ffd`8735f12c     libhttpd!ap_die_r+0x2c9
[C:\Development\apache24\src\httpd-2.4.69\modules\http\http_request.c @ 229] 
09 0000001c`666ff890 00007ffd`8735f1ff    
libhttpd!ap_process_async_request+0x29c
[C:\Development\apache24\src\httpd-2.4.69\modules\http\http_request.c @ 477] 
0a 0000001c`666ff920 00007ffd`87356643     libhttpd!ap_process_request+0xf
[C:\Development\apache24\src\httpd-2.4.69\modules\http\http_request.c @ 489] 
0b 0000001c`666ff970 00007ffd`8736754d    
libhttpd!ap_process_http_sync_connection+0x93
[C:\Development\apache24\src\httpd-2.4.69\modules\http\http_core.c @ 219] 
0c 0000001c`666ff9b0 00007ffd`873672c1    
libhttpd!ap_run_process_connection+0x3d
[C:\Development\apache24\src\httpd-2.4.69\server\connection.c @ 42] 
0d 0000001c`666ff9e0 00007ffd`8737bbcf     libhttpd!ap_process_connection+0x31
[C:\Development\apache24\src\httpd-2.4.69\server\connection.c @ 219] 
0e 0000001c`666ffa10 00007ffd`b2327374     libhttpd!worker_main+0x16f
[C:\Development\apache24\src\httpd-2.4.69\server\mpm\winnt\child.c @ 846] 
0f 0000001c`666ffa80 00007ffd`b3f3cc91     kernel32!BaseThreadInitThunk+0x14
10 0000001c`666ffab0 00000000`00000000     ntdll!RtlUserThreadStart+0x21

The crash appears to occur during session encoding, with the immediate fault in
APR-util's apr_crypto_get_block_key_types(), called from mod_session_crypto's
crypt_init().

The Apache Lounge user report at
https://www.apachelounge.com/viewtopic.php?p=44573 says if they replace the
2.4.69 mod_session_crypto.so file with the one from 2.4.68, then all is well.
However, that doesn't happen for me; Apache still crashes. 

That doesn't surprise me, since if I compare the source files in
modules\session, then mod_session_crypto.c hasn't changed between releases
2.4.68 and 2.4.69. The only file, that has changed in that folder is
mod_session_cookie.c.

So I'm not sure what code change between the two versions is causing this
exception.

If there's any further more detailed output you need from WinDbg, please
advise.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to