CVE-2021-32646: Insufficient Information (NVD-CWE-noinfo)
value: Roomer is a discord bot cog (extension) which provides automatic voice channel generation as well as private voice and text channels. A vulnerability has been discovered allowing discord users to get the ``manage channel`` permissions in a private VC they have joined. This allowed them to make changes to or delete the voice channel they have taken over. The exploit does not allow access or control to any other channels in the server. Upgrade to version 1.0.1 for a patched version of the cog. As a workaround you may disable private VCs in your guild(server) or unload the roomer cog to render the exploit unusable.
CWE description: There is insufficient information about the issue to classify it; details are unkown or unspecified.
CVSS v3 base score: 7.3
Published: 2021-05-28T18:15Z
Repository: https://github.com/Dav-Git/Dav-Cogs
Language: Python
Files changed: roomer/roomer.py
Commit date: 2021-05-28 01:14:35 +0200
Commit message: change some permissions stuff

Diff: diff --git a/roomer/roomer.py b/roomer/roomer.py
index 70c02c9..f999fe3 100644
--- a/roomer/roomer.py
+++ b/roomer/roomer.py
@@ -10,11 +10,11 @@ from redbot.core.i18n import Translator, cog_i18n
 _ = Translator("Roomer", __file__)
 
 
 @cog_i18n(_)
 class Roomer(commands.Cog):
-    __version__ = "1.0.0"
+    __version__ = "1.0.1"
 
     def format_help_for_context(self, ctx: commands.Context) -> str:
         # Thanks Sinbad! And Trusty in whose cogs I found this.
         pre_processed = super().format_help_for_context(ctx)
         return f"{pre_processed}\n\nVersion: {self.__version__}"
@@ -312,18 +312,14 @@ class Roomer(commands.Cog):
         """Hide or unhide a voicechannel you own."""
         data = await self.config.guild(ctx.guild).pchannels()
         try:
             for key in data:
                 if data[key] == ctx.author.voice.channel.id:
-                    ov = {
-                        ctx.guild.default_role: discord.PermissionOverwrite(
-                            view_channel=False, connect=False
-                        ),
-                        ctx.author: discord.PermissionOverwrite(
-                            view_channel=True, connect=True, speak=True, manage_channels=True
-                        ),
-                    }
+                    ov = ctx.author.voice.channel.overwrites
+                    ov[ctx.guild.default_role] = discord.PermissionOverwrite(
+                        view_channel=False, connect=False
+                    )
                     if self.invoiceConfig:
                         ov[
                             ctx.guild.get_role(
                                 await self.invoiceConfig.channel(ctx.author.voice.channel).role()
                             )

Vulnerable code:     __version__ = "1.0.0"
                    ov = {
                        ctx.guild.default_role: discord.PermissionOverwrite(
                            view_channel=False, connect=False
                        ),
                        ctx.author: discord.PermissionOverwrite(
                            view_channel=True, connect=True, speak=True, manage_channels=True
                        ),
                    }
Fixed code:     __version__ = "1.0.1"
                    ov = ctx.author.voice.channel.overwrites
                    ov[ctx.guild.default_role] = discord.PermissionOverwrite(
                        view_channel=False, connect=False
                    )