# curl, libcurl を manjaro linux でバージョンアップする手順 ## 背景 * curl の任意コード実行脆弱性のため、一応ローカルマシンのバージョンアップしたかった * https://curl.se/docs/CVE-2023-38545.html * かなりやばそう * https://x.com/lyiase/status/1712004922995360106?s=20 * > ・SOCK5にリダイレクトするHTTPサーバー ・細工したSOCKS5サーバー を用意することで、ヒープオーバーフローにより任意のコードが実行可能になる脆弱性なよう。 ## 前提 * manjaro linux の pacman はデフォルトで manjaro linux 用のリポジトリに接続するので、arch linux 用のリポジトリには接続しない * manjaro リポジトリは、arch のリポジトリの内容を2週間後くらいに反映することで動作安定をする戦略をとっている (delayed repository って言うっけ?) * そのため、curl はまだ 8.4 が使えない ## 方針 * 仕方ないので一時的に manjaro から arch 用リポジトリに接続することにした * 本当にこれでよいかはわからん ## 対応内容 * 接続先を変更する * /etc/pacman.conf に設定が書いてあるので確認する * 自分の場合、 `Include = /etc/pacman.d/mirrorlist` となっていたので、この mirrorlist を編集する * ↓に arch 用ミラーが書いてあるので、1つでいいのでここから適当に選んで書き換える * https://archlinux.org/mirrorlist/all/https/ * パッケージデータベースの更新 * sudo pacman -Syy * u を指定してないからローカルには同期されない * curl, libcurl, そのた curl 関連をアップデートする * インストール対象確認 * sudo pacman -Ss curl | grep installed * 8.3のはず * ↑をもとにインストールする * 自分の場合、sudo pacman -S curl libcurl-gnutls lib32-curl * インストール後のバージョン確認 * sudo pacman -Ss curl | grep installed * 8.4のはず * 接続先を manjaro リポジトリに戻す * /etc/pacman.d/mirrorlist を戻す * sudo pacman -Syy で同期する * pacman -Ss curl とかってすると、リポジトリ側が8.3であることが確認できる