The vulnerability is an object injection flaw within the Active Job component of Ruby on Rails. The root cause is in the ActiveJob::Arguments.deserialize_argument method, which improperly handled string arguments during deserialization. It would automatically attempt to resolve any string as a Global ID by passing it to GlobalID::Locator.locate. This behavior could be exploited by an attacker by providing a specially crafted string that represents a Global ID URI. The application would then deserialize this string into an arbitrary object, giving the attacker control over the object's class and content. The fix, introduced in commit 3f1d04e3bb04d240792112b5b45a9062c72e0df4, was to change the serialization format for Global IDs to use a special hash ({ '_aj_globalid': '...' }). This allows the deserialize_argument method to reliably distinguish between a plain string and a serialized object, thus preventing the automatic and unsafe deserialization of strings.