diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 8eac46c9..1c57f659 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -78,6 +78,7 @@ Morgan Fainberg
 Naveen S R
 Nick Douma
 Nick Prendergast
+Nicolas Vivet
 Oliver Bestwalter
 Pablo Galindo
 Paul Moore
diff --git a/docs/changelog/1654.bugfix.rst b/docs/changelog/1654.bugfix.rst
new file mode 100644
index 00000000..0d20d48a
--- /dev/null
+++ b/docs/changelog/1654.bugfix.rst
@@ -0,0 +1,1 @@
+Support for PEP517 in-tree build backend-path key in ``get-build-requires``. - by :user:`nizox`
diff --git a/src/tox/helper/build_requires.py b/src/tox/helper/build_requires.py
index cd074f97..aafb258c 100644
--- a/src/tox/helper/build_requires.py
+++ b/src/tox/helper/build_requires.py
@@ -1,8 +1,12 @@
 import json
+import os
 import sys
 
 backend_spec = sys.argv[1]
 backend_obj = sys.argv[2] if len(sys.argv) >= 3 else None
+backend_paths = sys.argv[3].split(os.path.pathsep) if len(sys.argv) >= 4 else []
+
+sys.path[:0] = backend_paths
 
 backend = __import__(backend_spec, fromlist=["_trash"])
 if backend_obj:
diff --git a/src/tox/package/builder/isolated.py b/src/tox/package/builder/isolated.py
index 38ebe8ea..998ce25f 100644
--- a/src/tox/package/builder/isolated.py
+++ b/src/tox/package/builder/isolated.py
@@ -92,6 +92,15 @@ def get_build_info(folder):
         abort("backend-path key at build-system section must be a list, if specified")
     backend_paths = [folder.join(p) for p in backend_paths]
 
+    normalized_folder = os.path.normcase(str(folder.realpath()))
+    normalized_paths = (os.path.normcase(str(path.realpath())) for path in backend_paths)
+
+    if not all(
+        os.path.commonprefix((normalized_folder, path)) == normalized_folder
+        for path in normalized_paths
+    ):
+        abort("backend-path must exist in the project root")
+
     return BuildInfo(requires, module, obj, backend_paths)
 
 
@@ -129,6 +138,7 @@ def get_build_requires(build_info, package_venv, setup_dir):
                 BUILD_REQUIRE_SCRIPT,
                 build_info.backend_module,
                 build_info.backend_object,
+                os.path.pathsep.join(str(p) for p in build_info.backend_paths),
             ],
             returnout=True,
             action=action,

PEP517 in-tree build backend-path support in get-build-requires
Using tox 3.19, in-tree build with `backend-path` fails with:
```
.package start: get-build-requires /Users/nicolas/Workspaces/proj/.tox/.package
setting PATH=/Users/nicolas/Workspaces/proj/.tox/.package/bin:/Users/nicolas/.virtualenvs/proj-python3.8/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
[15159] /Users/nicolas/Workspaces/proj$ /Users/nicolas/Workspaces/proj/.tox/.package/bin/python /Users/nicolas/.virtualenvs/proj-python3.8/lib/python3.8/site-packages/tox/helper/build_requires.py build_package '' >.tox/.package/log/.package-0.log
ERROR: invocation failed (exit code 1), logfile: /Users/nicolas/Workspaces/proj/.tox/.package/log/.package-0.log
=================================================================================== log start ====================================================================================
Traceback (most recent call last):
  File "/Users/nicolas/.virtualenvs/proj-python3.8/lib/python3.8/site-packages/tox/helper/build_requires.py", line 7, in <module>
    backend = __import__(backend_spec, fromlist=["_trash"])
ModuleNotFoundError: No module named 'build_package'
```

`pyproject.toml` content is:
```
[build-system]
requires = [
  "setuptools >= 40.9.0",
  "wheel",
]
build-backend = "build_package"
backend-path = ["scripts"]
```

A quick patch of `tox/helper/build_requires.py` to use the backend paths similarly to `tox/helper/build_isolated.py` fixes the issue. I can do a PR but the patch duplicates the `_ensure_module_in_paths` function.
diff --git a/tests/unit/package/builder/test_package_builder_isolated.py b/tests/unit/package/builder/test_package_builder_isolated.py
index 63e0685a..458e43bb 100644
--- a/tests/unit/package/builder/test_package_builder_isolated.py
+++ b/tests/unit/package/builder/test_package_builder_isolated.py
@@ -153,3 +153,43 @@ def test_package_isolated_toml_bad_backend_path(initproj):
     backend-path = 42
     """,
     )
+
+
+def test_package_isolated_toml_backend_path_outside_root(initproj):
+    """Verify that a 'backend-path' outside the project root is forbidden."""
+    toml_file_check(
+        initproj,
+        6,
+        "backend-path must exist in the project root",
+        """
+    [build-system]
+    requires = []
+    build-backend = 'setuptools.build_meta'
+    backend-path = ['..']
+    """,
+    )
+
+
+def test_verbose_isolated_build_in_tree(initproj, mock_venv, cmd):
+    initproj(
+        "example123-0.5",
+        filedefs={
+            "tox.ini": """
+                    [tox]
+                    isolated_build = true
+                    """,
+            "build.py": """
+                    from setuptools.build_meta import *
+                    """,
+            "pyproject.toml": """
+                    [build-system]
+                    requires = ["setuptools >= 35.0.2"]
+                    build-backend = 'build'
+                    backend-path = ['.']
+                                """,
+        },
+    )
+    result = cmd("--sdistonly", "-v", "-v", "-v", "-e", "py")
+    assert "running sdist" in result.out, result.out
+    assert "running egg_info" in result.out, result.out
+    assert "Writing example123-0.5{}setup.cfg".format(os.sep) in result.out, result.out

pip install -e .[testing]
parse_log_pytest
pip
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
coverage==7.8.0
distlib==0.3.9
exceptiongroup==1.2.2
execnet==2.1.1
filelock==3.18.0
flaky==3.8.1
freezegun==1.5.1
importlib_metadata==8.6.1
iniconfig==2.1.0
packaging==24.2
pathlib2==2.3.7.post1
platformdirs==4.3.7
pluggy==1.5.0
psutil==7.0.0
py==1.11.0
pytest==8.3.5
pytest-asyncio==0.26.0
pytest-cov==6.0.0
pytest-mock==3.14.0
pytest-randomly==3.16.0
pytest-xdist==3.6.1
python-dateutil==2.9.0.post0
six==1.17.0
toml==0.10.2
tomli==2.2.1
-e git+https://github.com/tox-dev/tox.git@23dd96f5a6891fb13e298ea941bd457931421ffd#egg=tox
typing_extensions==4.13.0
virtualenv==20.29.3
zipp==3.21.0

name: tox
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.8.0
      - distlib==0.3.9
      - exceptiongroup==1.2.2
      - execnet==2.1.1
      - filelock==3.18.0
      - flaky==3.8.1
      - freezegun==1.5.1
      - importlib-metadata==8.6.1
      - iniconfig==2.1.0
      - packaging==24.2
      - pathlib2==2.3.7.post1
      - platformdirs==4.3.7
      - pluggy==1.5.0
      - psutil==7.0.0
      - py==1.11.0
      - pytest==8.3.5
      - pytest-asyncio==0.26.0
      - pytest-cov==6.0.0
      - pytest-mock==3.14.0
      - pytest-randomly==3.16.0
      - pytest-xdist==3.6.1
      - python-dateutil==2.9.0.post0
      - six==1.17.0
      - toml==0.10.2
      - tomli==2.2.1
      - tox==3.19.1.dev2+g23dd96f5
      - typing-extensions==4.13.0
      - virtualenv==20.29.3
      - zipp==3.21.0
prefix: /opt/conda/envs/tox

tests/unit/package/builder/test_package_builder_isolated.py::test_package_isolated_toml_backend_path_outside_root
tests/unit/package/builder/test_package_builder_isolated.py::test_verbose_isolated_build tests/unit/package/builder/test_package_builder_isolated.py::test_verbose_isolated_build_in_tree tests/unit/package/builder/test_package_builder_isolated.py::test_package_isolated_no_pyproject_toml tests/unit/package/builder/test_package_builder_isolated.py::test_dist_exists_version_change
tests/unit/package/builder/test_package_builder_isolated.py::test_package_isolated_toml_no_backend tests/unit/package/builder/test_package_builder_isolated.py::test_package_isolated_toml_bad_backend_path tests/unit/package/builder/test_package_builder_isolated.py::test_package_isolated_toml_bad_backend tests/unit/package/builder/test_package_builder_isolated.py::test_package_isolated_toml_bad_requires tests/unit/package/builder/test_package_builder_isolated.py::test_package_isolated_toml_no_build_system tests/unit/package/builder/test_package_builder_isolated.py::test_package_isolated_toml_no_requires
docs/changelog/1654.bugfix.rst CONTRIBUTORS src/tox/helper/build_requires.py src/tox/package/builder/isolated.py
docs/changelog/1654.bugfix.rst CONTRIBUTORS src/tox/helper/build_requires.py src/tox/package/builder/isolated.py