lastpass / lastpass-cli

LastPass command line interface tool
GNU General Public License v2.0
2.85k stars 291 forks source link

can't login "Error: Stream error in the HTTP/2 framing layer." #647

Open dotrosedotnet opened 1 year ago

dotrosedotnet commented 1 year ago

I don't know what else to include. When I try to log in I get the error:

Error: Stream error in the HTTP/2 framing layer.

and that's it. :(

I'm on nixos, trying to login on zsh. Everything is updated. In fact this broke when I updated everything (which I needed to do fix some other stuff)

dotrosedotnet commented 1 year ago

this seems to be a curl error? here's curl --version

curl 7.86.0 (x86_64-pc-linux-gnu) libcurl/7.86.0 OpenSSL/3.0.7 zlib/1.2.13 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.2 libssh2/1.10.0 nghttp2/1.49.0
Release-Date: 2022-10-26
Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd
ilian commented 1 year ago

I have the same issue and I'm also running NixOS. Here's the list of all dynamically linked dependencies with the broken config:

$ ldd $(which lpass)
        linux-vdso.so.1 (0x00007ffc4e9b3000)
        libxml2.so.2 => /nix/store/5sm16lg4p0qm5gq734929dvg0m9vfi7j-libxml2-2.10.3/lib/libxml2.so.2 (0x00007f923694a000)
        libssl.so.3 => /nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7/lib/libssl.so.3 (0x00007f923689d000)
        libcrypto.so.3 => /nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7/lib/libcrypto.so.3 (0x00007f9236400000)
        libcurl.so.4 => /nix/store/xryxkg022p5vnlyyyx58csbmfc7ydsdp-curl-7.86.0/lib/libcurl.so.4 (0x00007f923635b000)
        libc.so.6 => /nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224/lib/libc.so.6 (0x00007f9236000000)
        libz.so.1 => /nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13/lib/libz.so.1 (0x00007f923633d000)
        libm.so.6 => /nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224/lib/libm.so.6 (0x00007f923625d000)
        libdl.so.2 => /nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224/lib/libdl.so.2 (0x00007f9236896000)
        libpthread.so.0 => /nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224/lib/libpthread.so.0 (0x00007f9236891000)
        libnghttp2.so.14 => /nix/store/6n84642sa6yfh4j1ig92gf3502pw5lvd-nghttp2-1.49.0-lib/lib/libnghttp2.so.14 (0x00007f923622e000)
        libidn2.so.0 => /nix/store/5mh5019jigj0k14rdnjam1xwk5avn1id-libidn2-2.3.2/lib/libidn2.so.0 (0x00007f923620c000)
        libssh2.so.1 => /nix/store/yx88f7vj5hyfa6y1khrz3fk4ipqf5zbc-libssh2-1.10.0/lib/libssh2.so.1 (0x00007f9235fbf000)
        libgssapi_krb5.so.2 => /nix/store/mpawl5cqbibwndh0imy0in88cdrpfq5y-libkrb5-1.20/lib/libgssapi_krb5.so.2 (0x00007f9235f6c000)
        libzstd.so.1 => /nix/store/wy2cyn4qgvrr0k2i3dpvvxk1w9q5px8y-zstd-1.5.2/lib/libzstd.so.1 (0x00007f9235ea8000)
        libbrotlidec.so.1 => /nix/store/ln61irss154s5riy9cl17zdqvbk6pw9j-brotli-1.0.9-lib/lib/libbrotlidec.so.1 (0x00007f923687f000)
        /nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224/lib/ld-linux-x86-64.so.2 => /nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224/lib64/ld-linux-x86-64.so.2 (0x00007f9236ab3000)
        libunistring.so.2 => /nix/store/34xlpp3j3vy7ksn09zh44f1c04w77khf-libunistring-1.0/lib/libunistring.so.2 (0x00007f9235cfc000)
        libkrb5.so.3 => /nix/store/mpawl5cqbibwndh0imy0in88cdrpfq5y-libkrb5-1.20/lib/libkrb5.so.3 (0x00007f9235c21000)
        libk5crypto.so.3 => /nix/store/mpawl5cqbibwndh0imy0in88cdrpfq5y-libkrb5-1.20/lib/libk5crypto.so.3 (0x00007f9235bf2000)
        libcom_err.so.3 => /nix/store/mpawl5cqbibwndh0imy0in88cdrpfq5y-libkrb5-1.20/lib/libcom_err.so.3 (0x00007f9235bec000)
        libkrb5support.so.0 => /nix/store/mpawl5cqbibwndh0imy0in88cdrpfq5y-libkrb5-1.20/lib/libkrb5support.so.0 (0x00007f9235bdc000)
        libkeyutils.so.1 => /nix/store/z1rv0s5zvn9gzw57q4pnw5snkfra63cz-keyutils-1.6.3-lib/lib/libkeyutils.so.1 (0x00007f9235bd5000)
        libresolv.so.2 => /nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224/lib/libresolv.so.2 (0x00007f9235bc1000)
        libbrotlicommon.so.1 => /nix/store/ln61irss154s5riy9cl17zdqvbk6pw9j-brotli-1.0.9-lib/lib/libbrotlicommon.so.1 (0x00007f9235b9e000)

However, running lpass from master seems to work fine though. Here's a shell.nix file with a working config:

{
  pkgs ? import (builtins.fetchTarball https://github.com/NixOS/nixpkgs/archive/release-22.11.tar.gz) {}
}:

let
  master = import (builtins.fetchTarball https://github.com/NixOS/nixpkgs/archive/master.tar.gz) {};
in

pkgs.mkShell {
  name = "lastpass-issue-647";
  buildInputs = [
    master.lastpass-cli # changing master to pkgs would reproduce the issue
  ];
}
ianssoftcom commented 1 year ago

I get the same error also when using curl directly

 curl -v https://lastpass.com/login_check.php
...
* HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)

although it does work when I force HTTP1.1

 curl -v --http1.1 https://lastpass.com/login_check.php
...
< HTTP/1.1 200 OK
ymatsiuk commented 1 year ago

This was indeed curl issue, should have been fixed by now