diff --git a/CHANGELOG.md b/CHANGELOG.md
index 317f3d5..2208464 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,12 @@
 
 [Unreleased]: https://github.com/chaostoolkit/chaostoolkit-lib/compare/1.1.1...HEAD
 
+### Changed
+
+- Use a YAML safe loader for settings [#92][92]
+
+[92]: https://github.com/chaostoolkit/chaostoolkit-lib/issues/92
+
 ## [1.1.1][] - 2019-03-22
 
 [1.1.1]: https://github.com/chaostoolkit/chaostoolkit-lib/compare/1.1.0...1.1.1
diff --git a/chaoslib/settings.py b/chaoslib/settings.py
index fc5047f..29056bb 100644
--- a/chaoslib/settings.py
+++ b/chaoslib/settings.py
@@ -23,7 +23,10 @@ def load_settings(settings_path: str = CHAOSTOOLKIT_CONFIG_PATH) -> Settings:
         return
 
     with open(settings_path) as f:
-        return yaml.load(f.read())
+        try:
+            return yaml.safe_load(f.read())
+        except yaml.YAMLError as ye:
+            logger.error("Failed parsing YAML settings: {}".format(str(ye)))
 
 
 def save_settings(settings: Settings,

Update yaml loader to use the safe loader 
Currently we don't load yaml using the safe mechanism of the yaml package. This should be the case as we read from unsafe places.
diff --git a/tests/fixtures/unsafe-settings.yaml b/tests/fixtures/unsafe-settings.yaml
new file mode 100644
index 0000000..8c04763
--- /dev/null
+++ b/tests/fixtures/unsafe-settings.yaml
@@ -0,0 +1,4 @@
+
+!!python/object/apply:os.system
+args: ['Hello shell!']
+
diff --git a/tests/test_settings.py b/tests/test_settings.py
index 9ce34a6..282bfca 100644
--- a/tests/test_settings.py
+++ b/tests/test_settings.py
@@ -26,3 +26,9 @@ def test_save_settings():
     saved_settings = load_settings(new_settings_location)
     assert "notifications" in saved_settings
     os.remove(new_settings_location)
+
+
+def test_load_unsafe_settings():
+    settings = load_settings(
+        os.path.join(settings_dir, "unsafe-settings.yaml"))
+    assert settings is None

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-sugar
3.6
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
certifi==2021.5.30
-e git+https://github.com/chaostoolkit/chaostoolkit-lib.git@52e3b510c44fa315e3a77db780a7de7566bacd55#egg=chaostoolkit_lib
charset-normalizer==2.0.12
coverage==6.2
idna==3.10
importlib-metadata==4.8.3
iniconfig==1.1.1
logzero==1.7.0
packaging==21.3
pluggy==1.0.0
py==1.11.0
pyparsing==3.1.4
pytest==7.0.1
pytest-cov==4.0.0
pytest-sugar==0.9.6
PyYAML==6.0.1
requests==2.27.1
termcolor==1.1.0
tomli==1.2.3
typing_extensions==4.1.1
urllib3==1.26.20
zipp==3.6.0

name: chaostoolkit-lib
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
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - 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=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - charset-normalizer==2.0.12
      - coverage==6.2
      - idna==3.10
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - logzero==1.7.0
      - packaging==21.3
      - pluggy==1.0.0
      - py==1.11.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - pytest-sugar==0.9.6
      - pyyaml==6.0.1
      - requests==2.27.1
      - termcolor==1.1.0
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - urllib3==1.26.20
      - zipp==3.6.0
prefix: /opt/conda/envs/chaostoolkit-lib

tests/test_settings.py::test_load_settings tests/test_settings.py::test_save_settings tests/test_settings.py::test_load_unsafe_settings
tests/test_settings.py::test_do_not_fail_when_settings_do_not_exist
chaoslib/settings.py CHANGELOG.md
chaoslib/settings.py CHANGELOG.md