yes you can do that way
in cubemx project you should get Src\usbd_cdc_if.c
with smthg like
static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)
/* USER CODE BEGIN 6 */
/* USER CODE END 6 */
you can here pass the data to a task using message queue semaphore etc...
up to you and best suite your need
osMessagePut(xxx....) cpoudl be easier if to pass the buffer address and or size as the message
if you do not mind not using cmsis os layer then you can use direct freertos
xQueueSendFromISR , xSemaphoreGiveFromISR (save some cycle checkign for isr )
I’m doing that in a usb cdc based project wher i’m also re-arming the reception by call USBD_CDC_ReceivePacket(...)
but do only after setup of a new buffer (do not ovewrite data before it get used by the task)
and make sure not to overflow the task queue or lose any data (if using binary semphore).