{"id":"CVE-2024-28088","aliases":["EUVD-2024-0085","GHSA-h59x-p739-982c","PYSEC-2024-43","PYSEC-2024-45"],"status":"published","title":"LangChain directory traversal vulnerability","description":"LangChain through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution. (A patch is available as of release 0.1.29 of langchain-core.)","severity":{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-10","score":0.01726,"percentile":0.77735,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-22","CWE-31"],"published":"2024-03-03T00:00:00Z","modified":"2026-10-28T02:31:12Z","exploits":[{"source":"pocgithub","id":"levpachmanov/cve-2024-28088-poc","title":"levpachmanov/cve-2024-28088-poc","date":"2024-03-14","url":"https://github.com/levpachmanov/cve-2024-28088-poc"}],"fixes":[{"ecosystem":"PyPI","package":"langchain","fixed_in":["0.0.339","0.1.11"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"langchain-core","fixed_in":["0.1.30","0.1.11"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"langchain","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.0.339"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"langchain-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.1.30"}]}]},{"source":"osv","ecosystem":"PyPI","package":"langchain","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.0.339"}]}],"versions":["0.0.1","0.0.10","0.0.100","0.0.101","0.0.101rc0","0.0.102","0.0.102rc0","0.0.103","0.0.104","0.0.105","0.0.106","0.0.107","0.0.108","0.0.109","0.0.11","0.0.110","0.0.111","0.0.112","0.0.113","0.0.114","0.0.115","0.0.116","0.0.117","0.0.118","0.0.119","0.0.12","0.0.120","0.0.121","0.0.122","0.0.123","0.0.124","0.0.125","0.0.126","0.0.127","0.0.128","0.0.129","0.0.13","0.0.130","0.0.131","0.0.132","0.0.133","0.0.134","0.0.135","0.0.136","0.0.137","0.0.138","0.0.139","0.0.14","0.0.140","0.0.141","0.0.142","0.0.143","0.0.144","0.0.145","0.0.146","0.0.147","0.0.148","0.0.149","0.0.15","0.0.150","0.0.151","0.0.152","0.0.153","0.0.154","0.0.155","0.0.156","0.0.157","0.0.158","0.0.159","0.0.16","0.0.160","0.0.161","0.0.162","0.0.163","0.0.164","0.0.165","0.0.166","0.0.167","0.0.168","0.0.169","0.0.17","0.0.170","0.0.171","0.0.172","0.0.173","0.0.174","0.0.175","0.0.176","0.0.177","0.0.178","0.0.179","0.0.18","0.0.180","0.0.181","0.0.182","0.0.183","0.0.184","0.0.185","0.0.186","0.0.187","0.0.188","0.0.189","0.0.19","0.0.190","0.0.191","0.0.192","0.0.193","0.0.194","0.0.195","0.0.196","0.0.197","0.0.198","0.0.199","0.0.2","0.0.20","0.0.200","0.0.201","0.0.202","0.0.203","0.0.204","0.0.205","0.0.206","0.0.207","0.0.208","0.0.209","0.0.21","0.0.210","0.0.211","0.0.212","0.0.213","0.0.214","0.0.215","0.0.216","0.0.217","0.0.218","0.0.219","0.0.22","0.0.220","0.0.221","0.0.222","0.0.223","0.0.224","0.0.225","0.0.226","0.0.227","0.0.228","0.0.229","0.0.23","0.0.230","0.0.231","0.0.232","0.0.233","0.0.234","0.0.235","0.0.236","0.0.237","0.0.238","0.0.239","0.0.24","0.0.240","0.0.240rc0","0.0.240rc1","0.0.240rc4","0.0.242","0.0.243","0.0.244","0.0.245","0.0.246","0.0.247","0.0.248","0.0.249","0.0.25","0.0.250","0.0.251","0.0.252","0.0.253","0.0.254","0.0.255","0.0.256","0.0.257","0.0.258","0.0.259","0.0.26","0.0.260","0.0.261","0.0.262","0.0.263","0.0.264","0.0.265","0.0.266","0.0.267","0.0.268","0.0.269","0.0.27","0.0.270","0.0.271","0.0.272","0.0.273","0.0.274","0.0.275","0.0.276","0.0.277","0.0.278","0.0.279","0.0.28","0.0.281","0.0.283","0.0.284","0.0.285","0.0.286","0.0.287","0.0.288","0.0.289","0.0.29","0.0.290","0.0.291","0.0.292","0.0.293","0.0.294","0.0.295","0.0.296","0.0.297","0.0.298","0.0.299","0.0.3","0.0.30","0.0.300","0.0.301","0.0.302","0.0.303","0.0.304","0.0.305","0.0.306","0.0.307","0.0.308","0.0.309","0.0.31","0.0.310","0.0.311","0.0.312","0.0.313","0.0.314","0.0.315","0.0.316","0.0.317","0.0.318","0.0.319","0.0.32","0.0.320","0.0.321","0.0.322","0.0.323","0.0.324","0.0.325","0.0.326","0.0.327","0.0.329","0.0.33","0.0.330","0.0.331","0.0.331rc0","0.0.331rc1","0.0.331rc2","0.0.331rc3","0.0.332","0.0.333","0.0.334","0.0.335","0.0.336","0.0.337","0.0.338","0.0.339rc0","0.0.339rc1","0.0.339rc2","0.0.339rc3","0.0.34","0.0.35","0.0.36","0.0.37","0.0.38","0.0.39","0.0.4","0.0.40","0.0.41","0.0.42","0.0.43","0.0.44","0.0.45","0.0.46","0.0.47","0.0.48","0.0.49","0.0.5","0.0.50","0.0.51","0.0.52","0.0.53","0.0.54","0.0.55","0.0.56","0.0.57","0.0.58","0.0.59","0.0.6","0.0.60","0.0.61","0.0.63","0.0.64","0.0.65","0.0.66","0.0.67","0.0.68","0.0.69","0.0.7","0.0.70","0.0.71","0.0.72","0.0.73","0.0.74","0.0.75","0.0.76","0.0.77","0.0.78","0.0.79","0.0.8","0.0.80","0.0.81","0.0.82","0.0.83","0.0.84","0.0.85","0.0.86","0.0.87","0.0.88","0.0.89","0.0.9","0.0.90","0.0.91","0.0.92","0.0.93","0.0.94","0.0.95","0.0.96","0.0.97","0.0.98","0.0.99","0.0.99rc0"]},{"source":"osv","ecosystem":"PyPI","package":"langchain-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.1.30"}]}],"versions":["0.0.1","0.0.10","0.0.11","0.0.12","0.0.13","0.0.13rc1","0.0.13rc2","0.0.2","0.0.3","0.0.4","0.0.5","0.0.6","0.0.7","0.0.8","0.0.9","0.1.0","0.1.1","0.1.10","0.1.11","0.1.12","0.1.12rc1","0.1.13","0.1.14","0.1.15","0.1.15rc1","0.1.15rc2","0.1.16","0.1.17","0.1.18","0.1.19","0.1.2","0.1.20","0.1.21","0.1.22","0.1.23","0.1.24","0.1.25","0.1.26","0.1.27","0.1.28","0.1.29","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9"]},{"source":"osv","ecosystem":"PyPI","package":"langchain","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.1.11"}]}],"versions":["0.0.1","0.0.10","0.0.100","0.0.101","0.0.101rc0","0.0.102","0.0.102rc0","0.0.103","0.0.104","0.0.105","0.0.106","0.0.107","0.0.108","0.0.109","0.0.11","0.0.110","0.0.111","0.0.112","0.0.113","0.0.114","0.0.115","0.0.116","0.0.117","0.0.118","0.0.119","0.0.12","0.0.120","0.0.121","0.0.122","0.0.123","0.0.124","0.0.125","0.0.126","0.0.127","0.0.128","0.0.129","0.0.13","0.0.130","0.0.131","0.0.132","0.0.133","0.0.134","0.0.135","0.0.136","0.0.137","0.0.138","0.0.139","0.0.14","0.0.140","0.0.141","0.0.142","0.0.143","0.0.144","0.0.145","0.0.146","0.0.147","0.0.148","0.0.149","0.0.15","0.0.150","0.0.151","0.0.152","0.0.153","0.0.154","0.0.155","0.0.156","0.0.157","0.0.158","0.0.159","0.0.16","0.0.160","0.0.161","0.0.162","0.0.163","0.0.164","0.0.165","0.0.166","0.0.167","0.0.168","0.0.169","0.0.17","0.0.170","0.0.171","0.0.172","0.0.173","0.0.174","0.0.175","0.0.176","0.0.177","0.0.178","0.0.179","0.0.18","0.0.180","0.0.181","0.0.182","0.0.183","0.0.184","0.0.185","0.0.186","0.0.187","0.0.188","0.0.189","0.0.19","0.0.190","0.0.191","0.0.192","0.0.193","0.0.194","0.0.195","0.0.196","0.0.197","0.0.198","0.0.199","0.0.2","0.0.20","0.0.200","0.0.201","0.0.202","0.0.203","0.0.204","0.0.205","0.0.206","0.0.207","0.0.208","0.0.209","0.0.21","0.0.210","0.0.211","0.0.212","0.0.213","0.0.214","0.0.215","0.0.216","0.0.217","0.0.218","0.0.219","0.0.22","0.0.220","0.0.221","0.0.222","0.0.223","0.0.224","0.0.225","0.0.226","0.0.227","0.0.228","0.0.229","0.0.23","0.0.230","0.0.231","0.0.232","0.0.233","0.0.234","0.0.235","0.0.236","0.0.237","0.0.238","0.0.239","0.0.24","0.0.240","0.0.240rc0","0.0.240rc1","0.0.240rc4","0.0.242","0.0.243","0.0.244","0.0.245","0.0.246","0.0.247","0.0.248","0.0.249","0.0.25","0.0.250","0.0.251","0.0.252","0.0.253","0.0.254","0.0.255","0.0.256","0.0.257","0.0.258","0.0.259","0.0.26","0.0.260","0.0.261","0.0.262","0.0.263","0.0.264","0.0.265","0.0.266","0.0.267","0.0.268","0.0.269","0.0.27","0.0.270","0.0.271","0.0.272","0.0.273","0.0.274","0.0.275","0.0.276","0.0.277","0.0.278","0.0.279","0.0.28","0.0.281","0.0.283","0.0.284","0.0.285","0.0.286","0.0.287","0.0.288","0.0.289","0.0.29","0.0.290","0.0.291","0.0.292","0.0.293","0.0.294","0.0.295","0.0.296","0.0.297","0.0.298","0.0.299","0.0.3","0.0.30","0.0.300","0.0.301","0.0.302","0.0.303","0.0.304","0.0.305","0.0.306","0.0.307","0.0.308","0.0.309","0.0.31","0.0.310","0.0.311","0.0.312","0.0.313","0.0.314","0.0.315","0.0.316","0.0.317","0.0.318","0.0.319","0.0.32","0.0.320","0.0.321","0.0.322","0.0.323","0.0.324","0.0.325","0.0.326","0.0.327","0.0.329","0.0.33","0.0.330","0.0.331","0.0.331rc0","0.0.331rc1","0.0.331rc2","0.0.331rc3","0.0.332","0.0.333","0.0.334","0.0.335","0.0.336","0.0.337","0.0.338","0.0.339","0.0.339rc0","0.0.339rc1","0.0.339rc2","0.0.339rc3","0.0.34","0.0.340","0.0.341","0.0.342","0.0.343","0.0.344","0.0.345","0.0.346","0.0.347","0.0.348","0.0.349","0.0.349rc1","0.0.349rc2","0.0.35","0.0.350","0.0.351","0.0.352","0.0.353","0.0.354","0.0.36","0.0.37","0.0.38","0.0.39","0.0.4","0.0.40","0.0.41","0.0.42","0.0.43","0.0.44","0.0.45","0.0.46","0.0.47","0.0.48","0.0.49","0.0.5","0.0.50","0.0.51","0.0.52","0.0.53","0.0.54","0.0.55","0.0.56","0.0.57","0.0.58","0.0.59","0.0.6","0.0.60","0.0.61","0.0.63","0.0.64","0.0.65","0.0.66","0.0.67","0.0.68","0.0.69","0.0.7","0.0.70","0.0.71","0.0.72","0.0.73","0.0.74","0.0.75","0.0.76","0.0.77","0.0.78","0.0.79","0.0.8","0.0.80","0.0.81","0.0.82","0.0.83","0.0.84","0.0.85","0.0.86","0.0.87","0.0.88","0.0.89","0.0.9","0.0.90","0.0.91","0.0.92","0.0.93","0.0.94","0.0.95","0.0.96","0.0.97","0.0.98","0.0.99","0.0.99rc0","0.1.0","0.1.1","0.1.10","0.1.2","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9"]},{"source":"osv","ecosystem":"PyPI","package":"langchain-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.1.11"}]}],"versions":["0.0.1","0.0.10","0.0.11","0.0.12","0.0.13","0.0.13rc1","0.0.13rc2","0.0.2","0.0.3","0.0.4","0.0.5","0.0.6","0.0.7","0.0.8","0.0.9","0.1.0","0.1.1","0.1.10","0.1.2","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9"]}],"products":[{"vendor":"langchain","product":"langchain"}],"references":[{"url":"https://github.com/PinkDraconian/PoC-Langchain-RCE/blob/main/README.md","tags":["x_transferred","Exploit","Third Party Advisory","web"]},{"url":"https://github.com/langchain-ai/langchain/blob/f96dd57501131840b713ed7c2e86cbf1ddc2761f/libs/core/langchain_core/utils/loading.py","tags":["x_transferred","Product","Third Party Advisory","web"]},{"url":"https://github.com/langchain-ai/langchain/pull/18600","tags":["x_transferred","Exploit","Issue Tracking","Patch","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-28088","tags":["advisory"]},{"url":"https://github.com/langchain-ai/langchain/commit/e1924b3e93d513ca950c72f8e80e1c133749fba5","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/langchain/PYSEC-2024-43.yaml","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/langchain-core/PYSEC-2024-45.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-h59x-p739-982c","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/28xxx/CVE-2024-28088.json","tags":["advisory"]},{"url":"https://github.com/langchain-ai/langchain","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2024-28088","description":"LangChain through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution. (A patch is available as of release 0.1.29 of langchain-core.)","status":"published","published":"2024-03-03T00:00:00Z","modified":"2024-08-26T19:44:45.33Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"adp"}],"cwes":["CWE-31"],"updated_at":"2026-11-02T14:34:18.951288Z"}],"euvd":[{"id":"EUVD-2024-0085","description":"LangChain through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution. (A patch is available as of release 0.1.29 of langchain-core.)","status":"published","published":"2024-03-03T00:00:00Z","modified":"2024-08-26T19:44:45Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-03T00:56:10.956482Z"}],"ghsa":[{"id":"GHSA-h59x-p739-982c","title":"LangChain directory traversal vulnerability","description":"LangChain through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution.","status":"published","published":"2024-03-04T00:30:53Z","modified":"2024-03-14T23:14:55Z","updated_at":"2026-11-02T14:37:40.81935Z"}],"nvd":[{"id":"CVE-2024-28088","description":"LangChain through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution. (A patch is available as of release 0.1.29 of langchain-core.)","status":"published","published":"2024-03-04T00:15:47.017Z","modified":"2026-06-17T07:20:56.497Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"primary"},{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-22","CWE-31"],"updated_at":"2026-11-02T14:09:39.488031Z"}],"osv":[{"id":"CVE-2024-28088","description":"LangChain through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution. (A patch is available as of release 0.1.29 of langchain-core.)","status":"published","published":"2024-03-03T00:00:00Z","modified":"2026-10-28T02:31:12.21381855Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:44:39.569658Z"},{"id":"GHSA-h59x-p739-982c","title":"LangChain directory traversal vulnerability","description":"LangChain through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution.","status":"published","published":"2024-03-04T00:30:53Z","modified":"2024-12-03T05:59:19.205896Z","updated_at":"2026-11-02T15:46:48.546324Z"},{"id":"PYSEC-2024-43","description":"LangChain through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution.","status":"published","published":"2024-03-04T00:15:00Z","modified":"2024-03-13T23:41:33.247986Z","updated_at":"2026-11-02T15:52:54.242332Z"},{"id":"PYSEC-2024-45","description":"LangChain through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution. (A patch is available as of release 0.1.29 of langchain-core.)","status":"published","published":"2024-03-04T00:15:00Z","modified":"2026-06-10T17:02:02.424980982Z","updated_at":"2026-11-02T15:52:54.242332Z"}]}}
