It is possible to do this because BSD is a permissive license. If a permissively licensed file is included in a non-permissively licensed project (like CDDL), it is possible for that file to remain under the permissive license. Depending on the project license, that file may have to also be available under the project license, but CDDL has a weak per-file copyleft, so permissive files don't have to be dual-licensed as CDDL. For example, if a BSD-licensed file is included in a GPL-licensed project, that file must be available under both BSD and GPL. In the BSD-in-GPL case this is possible because BSD is GPL-compatible, but other permissive licenses may not be GPL compatible making this combination legally impossible (e.g. the original 4-clause BSD license).
By the way, this answer applies to including any permissive-licensed file in any copyleft project.
The SFLC contains a document containing recommendations on how to include permissively licensed code in a GPL project. The same guidance mostly applies to BSD-in-CDDL:
The recommended way is to keep the permissive and GPL code in separate files. The goal is to clearly separate the permissive and GPL licensed code. To that end, the best method is to include the short license text at the top of each source file. If you're not doing this and instead using the approach of maintaining a single top-level COPYRIGHT or LICENSE file, you will need to clearly state which files are under which license, including authorship. Note that modern version control systems can help you attribute authorship, so long as it's clear which authors contributed under what license.
When included on a per-file basis, the permissive licensed files remain available under the permissive license. If the project's license is a strong copyleft one like GPL, it also must be available under GPL. Where CDDL is different is that CDDL has a weak, per-file copyleft, so permissive licensed files in CDDL projects don't have to be under CDDL.
Be very careful about future contributions to permissive licensed files; it is common for contributors to assume that all their contributions will be under the project's license, so they may inadvertently cause permissive licensed files to become mixed with non-permissive licensed code. In a mixed file, it is legally very tricky to determine which portions are under which license. Ideally the contributors should make it clear which license they wish their contributions to be under, preferably permissive also so that the file remains unambiguously permissive.
Because of the last point and the additional complexity introduced in any mixed-license scenario, you may face resistance from the maintainers. You could explain that this is not only legal but desirable (since the permissive licensed portions can be shared with other projects even if the project licenses are incompatible), by pointing them to this document, but they may still decline because of the hassle.