diff --git a/oem/ibm/libpldmresponder/fru_oem_ibm.cpp b/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
index 805d0ec..8cc35d2 100644
--- a/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
+++ b/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
@@ -1,5 +1,6 @@
 #include "fru_oem_ibm.hpp"
 
+#include <com/ibm/VPD/Manager/client.hpp>
 #include <phosphor-logging/lg2.hpp>
 
 #include <ranges>
@@ -80,6 +81,13 @@
                                    deviceId, revisionId, classCode,
                                    subSystemVendorId, subSystemId);
             }
+
+            if (tlv->type == PLDM_OEM_IBM_FRU_FIELD_TYPE_FIRMWARE_UAK)
+            {
+                std::vector<uint8_t> value(&tlv->value[0],
+                                           &tlv->value[tlv->length]);
+                setFirmwareUAK(value);
+            }
             // length of tlv is removed from the structure pldm_fru_record_tlv
             // and the new tlv length is added back.
             dataSize += sizeof(pldm_fru_record_tlv) - sizeof(uint8_t) +
@@ -147,6 +155,32 @@
               propertyName, "ERROR", e);
     }
 }
+
+void Handler::setFirmwareUAK(const std::vector<uint8_t>& data)
+{
+    using VPDManager = sdbusplus::client::com::ibm::vpd::Manager<>;
+
+    static constexpr auto uakObjPath = "/com/ibm/VPD/Manager";
+    static constexpr auto fruPath =
+        "/xyz/openbmc_project/inventory/system/chassis/motherboard";
+
+    auto& bus = pldm::utils::DBusHandler::getBus();
+    try
+    {
+        auto service = pldm::utils::DBusHandler().getService(
+            uakObjPath, VPDManager::interface);
+        auto method = bus.new_method_call(
+            service.c_str(), uakObjPath, VPDManager::interface, "WriteKeyword");
+        method.append(static_cast<sdbusplus::message::object_path>(fruPath),
+                      "UTIL", "D8", data);
+        bus.call_noreply(method);
+    }
+    catch (const std::exception& e)
+    {
+        error("Failed to make a DBus call to VPD manager: {ERROR}", "ERROR", e);
+    }
+}
+
 } // namespace oem_ibm_fru
 } // namespace responder
 } // namespace pldm
diff --git a/oem/ibm/libpldmresponder/fru_oem_ibm.hpp b/oem/ibm/libpldmresponder/fru_oem_ibm.hpp
index 1fa7bda..4323c3f 100644
--- a/oem/ibm/libpldmresponder/fru_oem_ibm.hpp
+++ b/oem/ibm/libpldmresponder/fru_oem_ibm.hpp
@@ -91,6 +91,12 @@
     void dbus_map_update(const std::string& adapterObjectPath,
                          const std::string& propertyName,
                          const std::string& propValue);
+
+    /** @brief setting firmware UAK (Update Access Key)
+     *
+     *  @param[in] data - value to be set
+     */
+    void setFirmwareUAK(const std::vector<uint8_t>& data);
 };
 
 } // namespace oem_ibm_fru
