diff --git a/amqtt/plugins/manager.py b/amqtt/plugins/manager.py index 043fc47..bc82c91 100644 --- a/amqtt/plugins/manager.py +++ b/amqtt/plugins/manager.py @@ -194,13 +194,13 @@ class PluginManager: @staticmethod async def _call_coro(plugin, coro_name, *args, **kwargs): - try: - coro = getattr(plugin.object, coro_name, None)(*args, **kwargs) - return await coro - except TypeError: + if not hasattr(plugin.object, coro_name): # Plugin doesn't implement coro_name return None + coro = getattr(plugin.object, coro_name)(*args, **kwargs) + return await coro + async def map_plugin_coro(self, coro_name, *args, **kwargs): """ Call a plugin declared by plugin by its name diff --git a/docs/changelog.rst b/docs/changelog.rst index cd9b0fd..092a222 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,7 +1,7 @@ Changelog --------- -0.10.0 - [unreleased] +0.10.0 - [2021-07-07] --------------------- * first release under new package name: amqtt @@ -13,6 +13,7 @@ Changelog * Move scripts module into hbmqtt module, from https://github.com/beerfactory/hbmqtt/pull/167 * Download mosquitto certificate on the fly * importing `hbmqtt` is deprecated, use `amqtt` + * Security fix: If an attacker could produce a KeyError inside an authentication plugin, the authentication was accepted instead of rejected 0.9.5 .....