diff --git a/Documentation/ProjectFile/properties/property/PorosityFromMassBalance/t_maximal_porosity.md b/Documentation/ProjectFile/properties/property/PorosityFromMassBalance/t_maximal_porosity.md
new file mode 100644
index 0000000000000000000000000000000000000000..f6543731b8947c9591c90fe505b4466445c56097
--- /dev/null
+++ b/Documentation/ProjectFile/properties/property/PorosityFromMassBalance/t_maximal_porosity.md
@@ -0,0 +1 @@
+\copydoc MaterialPropertyLib::PorosityFromMassBalance::_phi_max
diff --git a/Documentation/ProjectFile/properties/property/PorosityFromMassBalance/t_minimal_porosity.md b/Documentation/ProjectFile/properties/property/PorosityFromMassBalance/t_minimal_porosity.md
new file mode 100644
index 0000000000000000000000000000000000000000..03eb4483676972e2c6edcb225a8d68ebdda198ba
--- /dev/null
+++ b/Documentation/ProjectFile/properties/property/PorosityFromMassBalance/t_minimal_porosity.md
@@ -0,0 +1 @@
+\copydoc MaterialPropertyLib::PorosityFromMassBalance::_phi_min
diff --git a/MaterialLib/MPL/Properties/CreatePorosityFromMassBalance.cpp b/MaterialLib/MPL/Properties/CreatePorosityFromMassBalance.cpp
index 529eb77f8f1937ba76d8ee45c53052b4cf438791..443a2778b9ef86f2580f42176321daa32c0cf865 100644
--- a/MaterialLib/MPL/Properties/CreatePorosityFromMassBalance.cpp
+++ b/MaterialLib/MPL/Properties/CreatePorosityFromMassBalance.cpp
@@ -29,6 +29,13 @@ std::unique_ptr<PorosityFromMassBalance> createPorosityFromMassBalance(
     auto const& initial_porosity = ParameterLib::findParameter<double>(
         parameter_name, parameters, 0, nullptr);
 
-    return std::make_unique<PorosityFromMassBalance>(initial_porosity);
+    //! \ogs_file_param{properties__property__PorosityFromMassBalance__minimal_porosity}
+    auto const& phi_min = config.getConfigParameter<double>("minimal_porosity");
+
+    //! \ogs_file_param{properties__property__PorosityFromMassBalance__maximal_porosity}
+    auto const& phi_max = config.getConfigParameter<double>("maximal_porosity");
+
+    return std::make_unique<PorosityFromMassBalance>(
+        initial_porosity, phi_min, phi_max);
 }
 }  // namespace MaterialPropertyLib
diff --git a/MaterialLib/MPL/Properties/PorosityFromMassBalance.cpp b/MaterialLib/MPL/Properties/PorosityFromMassBalance.cpp
index 93fb827453c72ceb7ccbdcd53fa2be13ca30c278..d6889fdb435ca955389b7fc283cd06c4f65f4d44 100644
--- a/MaterialLib/MPL/Properties/PorosityFromMassBalance.cpp
+++ b/MaterialLib/MPL/Properties/PorosityFromMassBalance.cpp
@@ -59,7 +59,7 @@ PropertyDataType PorosityFromMassBalance::value(
         variable_array[static_cast<int>(Variable::porosity)]);
 
     double const w = dt * (e_dot + p_eff_dot / K_SR);
-    return std::clamp((phi + alpha_b * w) / (1 + w), 0., 1.);
+    return std::clamp((phi + alpha_b * w) / (1 + w), _phi_min, _phi_max);
 }
 
 PropertyDataType PorosityFromMassBalance::dValue(
diff --git a/MaterialLib/MPL/Properties/PorosityFromMassBalance.h b/MaterialLib/MPL/Properties/PorosityFromMassBalance.h
index dd82789b9bd6f5eccea050d8149e5add9935fae9..7ca7a9e52db4513a980498119817a9e4586e4fbf 100644
--- a/MaterialLib/MPL/Properties/PorosityFromMassBalance.h
+++ b/MaterialLib/MPL/Properties/PorosityFromMassBalance.h
@@ -29,11 +29,14 @@ private:
 
     /// Parameter, which is used by FEM to set the initial porosity value.
     ParameterLib::Parameter<double> const& _phi0;
+    double const _phi_min;  //< Lower limit for the porosity.
+    double const _phi_max;  //< Upper limit for the porosity.
 
 public:
     PorosityFromMassBalance(
-        ParameterLib::Parameter<double> const& initial_porosity)
-        : _phi0(initial_porosity)
+        ParameterLib::Parameter<double> const& initial_porosity,
+        double const phi_min, double const phi_max)
+        : _phi0(initial_porosity), _phi_min(phi_min), _phi_max(phi_max)
     {
     }
 
diff --git a/Tests/Data/RichardsMechanics/deformation_dependent_porosity.prj b/Tests/Data/RichardsMechanics/deformation_dependent_porosity.prj
index dc3542198dbcfec4667d4399d2cadd2092fb9219..b693dd615cee36f0fab5ef8e0a42077d03434589 100644
--- a/Tests/Data/RichardsMechanics/deformation_dependent_porosity.prj
+++ b/Tests/Data/RichardsMechanics/deformation_dependent_porosity.prj
@@ -79,6 +79,8 @@
                             <name>porosity</name>
                             <type>PorosityFromMassBalance</type>
                             <initial_porosity>phi0</initial_porosity>
+                            <minimal_porosity>0</minimal_porosity>
+                            <maximal_porosity>1</maximal_porosity>
                         </property>
                         <property>
                             <name>permeability</name>
diff --git a/Tests/Data/RichardsMechanics/orthotropic_power_law_permeability_xyz.prj b/Tests/Data/RichardsMechanics/orthotropic_power_law_permeability_xyz.prj
index b131f794c34370117e6374dc82fa8f47f7397203..dfd08e80cc8f6acf246cf572a0f02a3c254dcea6 100644
--- a/Tests/Data/RichardsMechanics/orthotropic_power_law_permeability_xyz.prj
+++ b/Tests/Data/RichardsMechanics/orthotropic_power_law_permeability_xyz.prj
@@ -77,6 +77,8 @@
                             <name>porosity</name>
                             <type>PorosityFromMassBalance</type>
                             <initial_porosity>phi0</initial_porosity>
+                            <minimal_porosity>0</minimal_porosity>
+                            <maximal_porosity>1</maximal_porosity>
                         </property>
                         <property>
                             <name>permeability</name>