id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,uname,nginx_version 2144,$cookie_name variable inconsistent cookie-pair splitting,auseviciusdev@…,,"$cookie_''name'' variable cookie pair splitting is inconsistent and looks to be not complying to rfc6265 According to https://tools.ietf.org/html/rfc6265#section-4.2.1 cookie pairs are split by ';' followed with space. {{{ cookie-header = ""Cookie:"" OWS cookie-string OWS cookie-string = cookie-pair *( "";"" SP cookie-pair ) }}} I found that Nginx is splitting on ';' and ',' (only unique cookie names?) with optional spaces. I have the following block: {{{ location / { return 200 $cookie_PHPSESSID\n; } }}} Test cases: {{{ root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: PHPSESSID=one; PHPSESSID=two"" one root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: PHPSESSID=one;PHPSESSID=two"" one root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: PHPSESSID=one PHPSESSID=two"" one PHPSESSID=two root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: PHPSESSID=one, PHPSESSID=two"" one, PHPSESSID=two root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: PHPSESSID=one,PHPSESSID=two"" one,PHPSESSID=two root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: ID=one, PHPSESSID=two"" two root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: ID=one PHPSESSID=two"" root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: PHPSESSID = one; PHPSESSID=two"" one root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: PHPSESSID = one PHPSESSID=two"" one PHPSESSID=two root@6637fda45745:/etc/nginx/conf.d# curl localhost -H ""Cookie: PHPSESSID = one, PHPSESSID=two"" one, PHPSESSID=two }}} Other syntax error is allowing spaces between cookie-name and cookie-value (not allowed in https://tools.ietf.org/html/rfc6265#section-4.1.1). I'm wondering why is this done like this, or is there a document that follows this syntax? Thank you",defect,closed,minor,,nginx-core,1.19.x,wontfix,cookie,auseviciusdev@…,Linux 6637fda45745 4.15.0-133-generic #137~16.04.1-Ubuntu SMP Fri Jan 15 02:55:18 UTC 2021 x86_64 GNU/Linux,"nginx version: nginx/1.19.7 built by gcc 8.3.0 (Debian 8.3.0-6) built with OpenSSL 1.1.1d 10 Sep 2019 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.19.7/debian/debuild-base/nginx-1.19.7=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'"