diff --git a/src/FileFormats/CBF/read.jl b/src/FileFormats/CBF/read.jl
index afdca96748..e940d9c3a5 100644
--- a/src/FileFormats/CBF/read.jl
+++ b/src/FileFormats/CBF/read.jl
@@ -133,40 +133,32 @@ end
 function _read_PSDVAR(io::IO, model::Model, data::_CBFReadData)
     for _ in 1:_read(io, Int)
         side_dim = _read(io, Int)
-        cone_dim = div(side_dim * (side_dim + 1), 2)
-        psd_vars_k = MOI.add_variables(model, cone_dim)
-        push!(data.psd_vars, psd_vars_k)
-        MOI.add_constraint(
-            model,
-            MOI.VectorOfVariables(psd_vars_k),
-            MOI.PositiveSemidefiniteConeTriangle(side_dim),
-        )
+        set = MOI.PositiveSemidefiniteConeTriangle(side_dim)
+        x, _ = MOI.add_constrained_variables(model, set)
+        push!(data.psd_vars, x)
     end
     return
 end
 
 function _read_VAR(io::IO, model::Model, data::_CBFReadData)
-    num_var, num_lines = _read(io, Int, Int)
-    append!(data.scalar_vars, MOI.add_variables(model, num_var))
-    var_idx = 0
+    _, num_lines = _read(io, Int, Int)
     for _ in 1:num_lines
         cone_str, cone_dim = _read(io, String, Int)
+        set = _cbf_to_moi_cone(data, cone_str, cone_dim)
         if cone_str == "F"
-            var_idx += cone_dim
-            continue # Free cones (no constraint).
-        end
-        indices = 1:cone_dim
-        if cone_str == "EXP" || cone_str == "EXP*"
-            indices = (3:-1:1)
+            # Free cones (no constraint).
+            append!(data.scalar_vars, MOI.add_variables(model, cone_dim))
+        elseif cone_str == "EXP" || cone_str == "EXP*"
+            # The convention in CBF is the reverse of MOI, so we cannot use
+            # add_constrained_variables.
+            x = MOI.add_variables(model, 3)
+            append!(data.scalar_vars, x)
+            MOI.add_constraint(model, MOI.VectorOfVariables(reverse(x)), set)
+        else
+            x, _ = MOI.add_constrained_variables(model, set)
+            append!(data.scalar_vars, x)
         end
-        MOI.add_constraint(
-            model,
-            MOI.VectorOfVariables(data.scalar_vars[var_idx.+indices]),
-            _cbf_to_moi_cone(data, cone_str, cone_dim),
-        )
-        var_idx += cone_dim
     end
-    @assert var_idx == num_var
     return
 end